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调用shell的方法
Nov 20 Python
深入浅析Python字符编码
Nov 12 Python
Python生成密码库功能示例
May 23 Python
python实现超简单的视频对象提取功能
Jun 04 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
Python3.5文件修改操作实例分析
May 01 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
Jul 22 Python
使用python批量修改文件名的方法(视频合并时)
Mar 24 Python
Python 合并多个TXT文件并统计词频的实现
Aug 23 Python
python SVD压缩图像的实现代码
Nov 05 Python
python 实现简单的FTP程序
Dec 27 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
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
php判断当前用户已在别处登录的方法
2015/01/06 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
jQuery回调函数的定义及用法实例
2014/12/23 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
JS随机打乱数组的方法小结
2016/06/22 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
js 性能优化之算法和流程控制
2017/02/15 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
PyCharm在win10的64位系统安装实例
2017/11/26 Python
利用python库在局域网内传输文件的方法
2018/06/04 Python
Python3实现统计单词表中每个字母出现频率的方法示例
2019/01/28 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Python 爬取必应壁纸的实例讲解
2020/02/24 Python
关于Python3爬虫利器Appium的安装步骤
2020/07/29 Python
python实现计算图形面积
2021/02/22 Python
css3发光搜索表单分享
2014/04/11 HTML / CSS
汽车维修求职信
2014/06/15 职场文书
2014高中生入党思想汇报范文
2014/09/13 职场文书
语文教师个人工作总结
2015/02/06 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
pytorch 如何使用float64训练
2021/05/24 Python
MySQL8.0.18配置多主一从
2021/06/21 MySQL
centos8安装nginx1.9.1的详细过程
2021/08/02 Servers
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python