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计数排序和基数排序算法实例
Apr 25 Python
Python基于动态规划算法计算单词距离
Jul 25 Python
Python时间模块datetime、time、calendar的使用方法
Jan 13 Python
使用python验证代理ip是否可用的实现方法
Jul 25 Python
Python查找文件中包含中文的行方法
Dec 19 Python
Python中函数的返回值示例浅析
Aug 28 Python
opencv python如何实现图像二值化
Feb 03 Python
深入浅析python的第三方库pandas
Feb 13 Python
使用python接受tgam的脑波数据实例
Apr 09 Python
tensorflow实现将ckpt转pb文件的方法
Apr 22 Python
详解Anaconda 的安装教程
Sep 23 Python
python区块链持久化和命令行接口实现简版
May 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
PHP 上传文件的方法(类)
2009/07/30 PHP
php写的带缓存数据功能的mysqli类
2012/09/06 PHP
解析php取整的几种方式
2013/06/25 PHP
PHP中使用循环实现的金字塔图形
2014/11/08 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
模拟电子签章盖章效果的jQuery插件源码
2013/06/24 Javascript
优化Jquery,提升网页加载速度
2013/11/14 Javascript
简单的js图片轮换代码(js图片轮播)
2014/05/06 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
2017/01/23 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
Python标准库os.path包、glob包使用实例
2014/11/25 Python
Python转换HTML到Text纯文本的方法
2015/01/15 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
Python用SSH连接到网络设备
2021/02/18 Python
Luxplus丹麦:香水和个人护理折扣
2018/04/23 全球购物
JD Sports西班牙:英国领先的运动服装公司
2020/01/06 全球购物
营销总经理岗位职责
2014/02/02 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
文明好少年事迹材料
2014/08/19 职场文书
2014年高数考试作弊检讨书
2014/12/14 职场文书
监察建议书
2015/02/04 职场文书
获奖感言怎么写
2015/07/31 职场文书
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
Linux系统下安装PHP7.3版本
2021/06/26 PHP