python爬虫 基于requests模块发起ajax的get请求实现解析


Posted in Python onAugust 20, 2019

基于requests模块发起ajax的get请求

需求:爬取豆瓣电影分类排行榜 https://movie.douban.com/中的电影详情数据

用抓包工具捉取 使用ajax加载页面的请求

python爬虫 基于requests模块发起ajax的get请求实现解析

python爬虫 基于requests模块发起ajax的get请求实现解析

鼠标往下下滚轮拖动页面,会加载更多的电影信息,这个局部刷新是当前页面发起的ajax请求,

用抓包工具捉取页面刷新的ajax的get请求,捉取滚轮在最底部时候发起的请求

这个get请求是本次发起的请求的url

python爬虫 基于requests模块发起ajax的get请求实现解析

ajax的get请求携带参数

python爬虫 基于requests模块发起ajax的get请求实现解析

获取响应内容不再是页面数据,是json字符串,是通过异步请求获取的电影详情信息

start和limit参数 需要注意,改变这两个参数获取的电影详情不一样

import requests
import json
# 指定ajax-get请求的url(通过抓包进行获取)
url = 'https://movie.douban.com/j/chart/top_list?'
# 封装ajax的get请求携带的参数(从抓包工具中获取) 封装到字典
param = {
  'type': '13',
  'interval_id': '100:90',
  'action': '',
  'start': '20', # 从第20个电影开始获取详情
  'limit': '20', # 获取多少个电影详情
  # 改变这两个参数获取的电影详情不一样
}
# 定制请求头信息,相关的头信息必须封装在字典结构中
headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
}
# 发起ajax的get请求还是用get方法
response = requests.get(url=url,params=param,headers=headers)

# 获取响应内容:响应内容为json字符串
data = response.text
data = json.loads(data)
for data_dict in data:
  print(data_dict["rank"],data_dict["title"])

'''
芙蓉镇
沉静如海
淘金记
马戏团
情迷意乱
士兵之歌
战争与和平
怦然心动
大话西游之月光宝盒
罗马假日
音乐之声
一一
雨中曲
我爱你
莫娣
卡比利亚之夜
婚姻生活
本杰明·巴顿奇事
情书
春光乍泄
'''

从21个电影开始获取信息,总共获取20个电影详情信息

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用分治法实现求解最大值的方法
May 12 Python
详解Python pygame安装过程笔记
Jun 05 Python
python3基于TCP实现CS架构文件传输
Jul 28 Python
Flask框架工厂函数用法实例分析
May 25 Python
Python学习笔记之自定义函数用法详解
Jun 08 Python
Python求离散序列导数的示例
Jul 10 Python
sklearn和keras的数据切分与交叉验证的实例详解
Jun 19 Python
Python操作Word批量生成合同的实现示例
Aug 28 Python
Python基于callable函数检测对象是否可被调用
Oct 16 Python
Pytest之测试命名规则的使用
Apr 16 Python
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
May 28 Python
Python+DeOldify实现老照片上色功能
Jun 21 Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 #Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 #Python
python实现证件照换底功能
Aug 20 #Python
pytorch多进程加速及代码优化方法
Aug 19 #Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
Aug 19 #Python
python opencv实现证件照换底功能
Aug 19 #Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
Aug 19 #Python
You might like
php mssql 数据库分页SQL语句
2008/12/16 PHP
解析smarty模板中类似for的功能实现
2013/06/18 PHP
PHP多进程编程总结(推荐)
2016/07/18 PHP
自定义jQuery选项卡插件实例
2013/03/27 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
JavaScript实现弹出子窗口并传值给父窗口
2014/12/18 Javascript
NodeJS中Buffer模块详解
2015/01/07 NodeJs
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
BootStrap Table 获取同行不同列元素的方法
2016/12/19 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
Angular2中监听数据更新的方法
2018/08/31 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
Flutter实现仿微信底部菜单栏功能
2019/09/18 Javascript
js如何验证密码强度
2020/03/18 Javascript
Python的净值数据接口调用示例分享
2016/03/15 Python
Python数据分析库pandas基本操作方法
2018/04/08 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
解决Pycharm下面出现No R interpreter defined的问题
2018/10/29 Python
使用python matplotlib 画图导入到word中如何保证分辨率
2020/04/16 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
python爬虫请求头的使用
2020/12/01 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
微软英国官方网站:Microsoft英国
2016/10/15 全球购物
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
销售行政专员岗位职责
2014/06/10 职场文书
2014年关工委工作总结
2014/11/17 职场文书
终止劳动合同证明书样本
2014/11/19 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书