(一)前提:找到ajax异步加载的包接口,注意第一个电影名

我们把Request URL网址复制到地址栏得到:

上图是json格式数据,且第一个电影一致,说明我们找到了正确的ajax的json接口

出现加载更多之前是20部电影,点击加载更多,我们会得到第二个json包,里面是另外20个电影。

(二)爬取豆瓣中美剧分类的电影200个第一种方式(最后优化):

多加载几个json接口,找url规律

对json接口找规律,for循环拿到各json数据的url接口进行访问,把需要内容存入txt

import requests# url2 = "https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=20&countries=%E7%BE%8E%E5%9B%BD"
# url3= "https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=40&countries=%E7%BE%8E%E5%9B%BD"
# url = "https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start={}&countries=%E7%BE%8E%E5%9B%BD".format({(n-1)*20})
# response = requests.post(url2)
# print(response.json())for page in range(1,11,1):url = "https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start={}&countries=%E7%BE%8E%E5%9B%BD".format((page-1)*20)# print(url)response = requests.get(url)# ## print(response.json())for item in response.json()['data']:title = item['title']with open('movie.txt','a',encoding='utf-8') as f:f.write(title+'\n')

结果循环十次,每次20个正好200条:

(二)优化

我们抓取数据争取一次访问url就拿到全部数据才是王道:

url的问号后面都是参数,我们用字典传就是了

点击分类中的美国,找到json接口

抓规律发现:参数中都有range和start这两个,与预期不符的是,观察多个json包后发先只有start在变,差是20

#点击分类中的美国找到的第一个接口
url1 = 'https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=0&countries=%E7%BE%8E%E5%9B%BD'#点击加载更多得到的json接口
url2 = 'https://movie.douban.com/j/new_search_subjects?sort=U&range=0,10&tags=&start=20&countries=%E7%BE%8E%E5%9B%BD'

我们来动态改变它爬取600个电影吧!但是搞了半天没实现能一次连接读取拿到所有数据

但是有一个重大发现!

上图中没有limit键,我大胆加上了如下:(参数都可以改着试试,比如换成英国啥的都行)

完整代码如下:

import requests
url = 'https://movie.douban.com/j/new_search_subjects'
index = 0
data_dic = {'sort' : 'U','limit':'500','tags':'','start':'0','countries': '美国'
}
response = requests.get(url,data_dic)for item in response.json()['data']:title = item['title']with open('movie.txt','a',encoding='utf-8') as f:f.write(title+'\n')

结果:

爬取ajax加载的豆瓣电影相关推荐

  1. selenium爬取Ajax加载的网页(以微博为例)

    Tip:我写了一篇直接构造请求获取微博数据的文章,不使用selenium,直接访问url获取到json数据,然后解析即可得到想要的数据的文章,请参考微博博主动态及相册的请求构造规律 ========= ...

  2. Python爬虫爬取Ajax加载的百度图库

    Ajax 是一种用于创建快速动态网页的技术, 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. Ajax用一句话来说就是不需要刷整个新页面即可从服务器取得数据(局部刷新) 今天通过在百度 ...

  3. python requests+json爬取ajax加载 爱彼迎深圳所有房源

    目的: 爬取爱彼迎深圳所有房源的房主,价格,房源介绍等信息 步骤如下: step1:获取房源页面url 登陆爱彼迎网站,搜索深圳房源 https://zh.airbnb.com/s/homes?ref ...

  4. python爬取js加载的数据_JS动态加载数据不会爬?老司机教你两个方法爬取想要的数据...

    学习Python的人绝大部分都是在用Python做爬虫,毕竟对于爬虫而言Python是不二选. 但是一般简单的静态页面网站还是很好爬取的,对于很多动态加载的网站就不知道怎么办了,今天小编就给大家介绍两 ...

  5. java.lang.NoClassDefFoundError:org/apache/commons/io/Charsets (jsoup配合htmlunit 爬取异步加载的网页遇到的)

    最近用jsoup配合htmlunit 爬取异步加载的网页运行代码的时候,报错java.lang.NoClassDefFoundError:org/apache/commons/io/Charsets ...

  6. scrapy爬取动态网页_scrapy_splash 爬取 js 加载网页初体验

    最近打算学习 scrapy_splash 来爬取 js 加载的动态网页 selenium 实在太慢了,不在迫不得已的情况下并不推荐使用 下面,直接开始吧 目标网站 JD 某商品 环境需求 已安装 do ...

  7. python爬虫动态加载页面_Python+Selenium爬取动态加载页面(2)

    注: 上一篇<Python+Selenium爬取动态加载页面(1)>讲了基本地如何获取动态页面的数据,这里再讲一个稍微复杂一点的数据获取全国水雨情网.数据的获取过程跟人手动获取过程类似,所 ...

  8. 用Python爬取动态加载的诸如百度的图片

    用Python爬取动态加载的诸如百度的图片 使用原因 代码如下 模块介绍 selenium模块 lxml解析模块 requests模块 去除重复 开启多线程 效果如下 留言 使用原因 学习Python ...

  9. python 异步加载_Python学习笔记4——爬取异步加载数据

    一.什么是异步加载? 在之前的学习笔记中,爬取的网页是需要手动翻页的网址,但是一些网站是通过自动加载翻页的,如knewone网页.浏览knewone的官网就能发现,当下拉到网页最下端时,网站会自动加载 ...

最新文章

  1. Linux疑难杂症解决方案100篇(二十)-Linux正则表达式(实用)指南
  2. sql server 链接服务器 改访问接口_跨服务器链接数据库?其实很简单!(上)
  3. c程序设计语言用什么编译器,什么是编译器(编程软件)
  4. PMP 第七章 项目成本管理
  5. IOS开发CAKeyframeAnimation的基本使用与keypath的列举
  6. 【招聘(广州)】 招聘.NET程序员
  7. jsx怎么往js里传参数_在vue中使用jsx语法的使用方法
  8. bootstrap 滚动 进度条_bootstrap实现动态进度条效果
  9. 程序员,你还要迷茫多久?
  10. leetcode第一刷_Count and Say
  11. AS:Flash AS3中获取浏览器信息及URL相关参数(并非swf url地址)
  12. 深入学习.NET Web Services概念
  13. java案例代码16-java正则表达式的使用
  14. 东芝2505扫描软件_如何识别LED显示屏的扫描方式?-美亚迪分享
  15. 回顾2020年(1)
  16. 虚拟服务器C盘备份,分享:两种快速虚拟机备份方法
  17. SQL Server学习笔记6——LTRIM()函数(去掉空格)
  18. 后台管理系统——权限管理
  19. PAT A1010 Radix
  20. 拼多多电子面单云打印接口对接 (跨境erp应用,电子面单应用)[拼多多获取电子面单,拼多多面单打印]

热门文章

  1. 微信公众号自定义菜单添加emoji表情图标
  2. 一张图解决为什么校外访问不了学校购买的中国知网
  3. 字符串—解压缩(C语言)
  4. MATLAB 2019 快速入门教程(官方手册翻译)(1/4)
  5. 万物互联----聊聊OPC服务器KepWare
  6. 树状数组入门——以洛谷3374为例
  7. XEN Crypto创始人分享设计理念及项目愿景
  8. 0811 iOS开发完整学习路线
  9. python 多因素方差分析_多因素方差分析估计平方和的三种方法
  10. 计算机进安全模式启动修复,win7电脑故障怎么进入安全模式修复