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 21 Python
Python selenium 三种等待方式解读
Sep 15 Python
python按综合、销量排序抓取100页的淘宝商品列表信息
Feb 24 Python
Flask核心机制之上下文源码剖析
Dec 25 Python
WxPython建立批量录入框窗口
Feb 27 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
详细介绍Python进度条tqdm的使用
Jul 31 Python
Python3视频转字符动画的实例代码
Aug 29 Python
python读取ini配置的类封装代码实例
Jan 08 Python
Python callable内置函数原理解析
Mar 05 Python
Python @property及getter setter原理详解
Mar 31 Python
Python词云的正确实现方法实例
May 08 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如何抛出异常处理错误
2011/03/02 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
Jquery 模板数据绑定插件的使用方法详解
2013/07/08 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
用Vue编写抽象组件的方法
2019/05/06 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
python3使用urllib模块制作网络爬虫
2016/04/08 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
2018/01/03 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
2018/05/26 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
2018/10/17 Python
高二化学教学反思
2014/01/30 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
总经理聘用协议书
2015/09/21 职场文书
Golang流模式之grpc的四种数据流
2022/04/13 Golang
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript