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时间整形转标准格式的示例分享
Feb 14 Python
python进阶教程之函数对象(函数也是对象)
Aug 30 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
Apr 02 Python
python3中os.path模块下常用的用法总结【推荐】
Sep 16 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
Jan 15 Python
Python 中Django安装和使用教程详解
Jul 03 Python
Django配置文件代码说明
Dec 04 Python
python scrapy重复执行实现代码详解
Dec 28 Python
Python3开发环境搭建详细教程
Jun 18 Python
Django前后端分离csrf token获取方式
Dec 25 Python
什么是Python装饰器?如何定义和使用?
Apr 11 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在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
解析PHP获取当前网址及域名的实现代码
2013/06/23 PHP
解析centos中Apache、php、mysql 默认安装路径
2013/06/25 PHP
php调用shell的方法
2014/11/05 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
PHP中使用BigMap实例
2015/03/30 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
js弹窗代码 可以指定弹出间隔
2010/07/03 Javascript
JavaScript/jQuery 表单美化插件小结
2012/02/14 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
javascript中验证大写字母、数字和中文
2014/01/15 Javascript
javascript计时器编写过程与实现方法
2016/02/29 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
js闭包学习心得总结
2018/04/17 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
详解ES6 扩展运算符的使用与注意事项
2020/11/12 Javascript
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
2018/07/04 Python
对pandas中Series的map函数详解
2018/07/25 Python
python3.5绘制随机漫步图
2018/08/27 Python
python 将list转成字符串,中间用符号分隔的方法
2018/10/23 Python
用django设置session过期时间的方法解析
2019/08/05 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
2014年党员评议表自我评价
2014/09/27 职场文书
玩手机检讨书1000字
2014/10/20 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
Win11任务栏太宽了怎么办?一招解决Win11任务栏太宽问题
2021/11/21 数码科技
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers