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中文字符串截取问题
Jun 15 Python
python编写Logistic逻辑回归
Dec 30 Python
python 获取当天每个准点时间戳的实例
May 22 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
Python3 max()函数基础用法
Feb 19 Python
python3.6中@property装饰器的使用方法示例
Aug 17 Python
python基于property()函数定义属性
Jan 22 Python
Python安装whl文件过程图解
Feb 18 Python
python Shapely使用指南详解
Feb 18 Python
python实现暗通道去雾算法的示例
Sep 27 Python
Python爬虫实现selenium处理iframe作用域问题
Jan 27 Python
详解Python中的进程和线程
Jun 23 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面向对象的使用教程 简单数据库连接
2006/11/25 PHP
深入PHP异步执行的详解
2013/06/03 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
Laravel5.5新特性之友好报错以及展示详解
2017/08/13 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
Yii支持多域名cors原理的实现
2018/12/05 PHP
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
2012/04/12 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
jQuery焦点图轮播效果实现方法
2016/12/19 Javascript
js实现canvas图片与img图片的相互转换的示例
2017/08/31 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
2019/09/06 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
Python3里的super()和__class__使用介绍
2015/04/23 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
对python3中的RE(正则表达式)-详细总结
2019/07/23 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
python 解决pycharm运行py文件只有unittest选项的问题
2020/09/01 Python
在python中对于bool布尔值的取反操作
2020/12/11 Python
英国钻石公司:British Diamond Company
2020/02/16 全球购物
中海讯通笔试题
2015/09/15 面试题
军训心得体会
2013/12/31 职场文书
保安队长职务说明书
2014/02/23 职场文书
2014年银行工作总结范文
2014/11/12 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
学校光盘行动倡议书
2015/04/28 职场文书