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 相关文章推荐
Cpy和Python的效率对比
Mar 20 Python
介绍Python中的一些高级编程技巧
Apr 02 Python
Python实现随机生成有效手机号码及身份证功能示例
Jun 05 Python
Python中字典和集合学习小结
Jul 07 Python
Python字符串格式化常用手段及注意事项
Jun 17 Python
一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
Jul 03 Python
python mock测试的示例
Oct 19 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
Jan 05 Python
用Python写一个简易版弹球游戏
Apr 13 Python
tensorflow中的梯度求解及梯度裁剪操作
May 26 Python
pytorch 运行一段时间后出现GPU OOM的问题
Jun 02 Python
python使用matplotlib绘制图片时x轴的刻度处理
Aug 30 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生成带有雪花背景的验证码
2008/09/28 PHP
PHP 金额数字转换成英文
2010/05/06 PHP
php字符串截取的简单方法
2013/07/04 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
纯jQuery实现前端分页功能
2017/03/23 jQuery
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
2014/02/24 Python
python实现网站的模拟登录
2016/01/04 Python
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
Python 寻找局部最高点的实现
2019/12/05 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
施华洛世奇德国官网:SWAROVSKI德国
2017/02/01 全球购物
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
老师对学生的寄语
2014/04/09 职场文书
业务员自荐信范文
2014/04/20 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
一年级数学上册复习计划
2015/01/17 职场文书
2015毕业寄语大全
2015/02/26 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang