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的Bottle框架中返回静态文件和JSON对象的方法
Apr 30 Python
利用Python中的pandas库对cdn日志进行分析详解
Mar 07 Python
教你使用python实现微信每天给女朋友说晚安
Mar 23 Python
PyQt5 QSerialPort子线程操作的实现
Apr 21 Python
Anaconda 离线安装 python 包的操作方法
Jun 11 Python
python3调用百度翻译API实现实时翻译
Aug 16 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
python 进程间数据共享multiProcess.Manger实现解析
Sep 23 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
Oct 14 Python
flask 使用 flask_apscheduler 做定时循环任务的实现
Dec 10 Python
Django如何继承AbstractUser扩展字段
Nov 27 Python
去除python中的字符串空格的简单方法
Dec 22 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 array_keys 返回数组的键名
2016/10/25 PHP
PDO::inTransaction讲解
2019/01/28 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
Jquery iframe内部出滚动条
2010/02/11 Javascript
ajax 缓存 问题 requestheader
2010/08/01 Javascript
JavaScript自定义DateDiff函数(兼容所有浏览器)
2012/03/01 Javascript
jQuery中insertBefore()方法用法实例
2015/01/08 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
工厂模式在JS中的实践
2017/01/18 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
三种Webpack打包方式(小结)
2018/09/19 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
VUE注册全局组件和局部组件过程解析
2019/10/10 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
ES5和ES6中类的区别总结
2020/12/21 Javascript
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
利用python如何处理nc数据详解
2018/05/23 Python
Python实现迭代时使用索引的方法示例
2018/06/05 Python
Python中的函数式编程:不可变的数据结构
2018/10/08 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
Python 实现王者荣耀中的敏感词过滤示例
2019/01/21 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
薇诺娜官方网上商城:专注敏感肌肤
2017/05/25 全球购物
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
初二政治教学反思
2014/01/12 职场文书
合伙协议书
2014/04/23 职场文书
教师自查自纠材料
2014/10/14 职场文书
房地产销售员岗位职责
2015/04/11 职场文书
老乡会致辞
2015/07/28 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python