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操作CouchDB数据库简单示例
Mar 10 Python
Python与Redis的连接教程
Apr 22 Python
Python字符串格式化
Jun 15 Python
深入解析Python中的上下文管理器
Jun 28 Python
python使用正则表达式匹配字符串开头并打印示例
Jan 11 Python
Python之自动获取公网IP的实例讲解
Oct 01 Python
Python使用sorted对字典的key或value排序
Nov 15 Python
python中tab键是什么意思
Jun 18 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
Nov 25 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 Python
深入解析NumPy中的Broadcasting广播机制
May 30 Python
python如何读取和存储dict()与.json格式文件
Jun 25 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
php5 mysql分页实例代码
2008/04/10 PHP
我的php学习笔记(毕业设计)
2012/02/21 PHP
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
php浏览历史记录的方法
2015/03/10 PHP
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
python实现简单的socket server实例
2015/04/29 Python
python数据结构之链表的实例讲解
2017/07/25 Python
Python实现pdf文档转txt的方法示例
2018/01/19 Python
TensorFlow saver指定变量的存取
2018/03/10 Python
python远程邮件控制电脑升级版
2019/05/23 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
python开发入门——set的使用
2020/09/03 Python
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
英语求职信范文
2014/05/23 职场文书
党的群众路线对照检查材料
2014/08/27 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
英语辞职信怎么写
2015/02/28 职场文书
活着观后感
2015/06/03 职场文书
付款证明模板
2015/06/19 职场文书
2016党员干部政治学习心得体会
2016/01/23 职场文书
python实现的人脸识别打卡系统
2021/05/08 Python