python 爬虫 基于requests模块发起ajax的get请求

基于requests模块发起ajax的get请求

需求:爬取豆瓣电影分类排行榜 https://movie.douban.com/中的电影详情数据

用抓包工具捉取 使用ajax加载页面的请求

鼠标往下下滚轮拖动页面,会加载更多的电影信息,这个局部刷新是当前页面发起的ajax请求,

用抓包工具捉取页面刷新的ajax的get请求,捉取滚轮在最底部时候发起的请求

这个get请求是本次发起的请求的url

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 芙蓉镇
22 沉静如海
23 淘金记
24 马戏团
25 情迷意乱
26 士兵之歌
27 战争与和平
28 怦然心动
29 大话西游之月光宝盒
30 罗马假日
31 音乐之声
32 一一
33 雨中曲
34 我爱你
35 莫娣
36 卡比利亚之夜
37 婚姻生活
38 本杰明·巴顿奇事
39 情书
40 春光乍泄
‘‘‘

从21个电影开始获取信息,总共获取20个电影详情信息

原文地址:https://www.cnblogs.com/mingerlcm/p/11378848.html

时间: 2024-10-14 19:42:32

python 爬虫 基于requests模块发起ajax的get请求的相关文章

python 爬虫 基于requests模块的get请求

需求:爬取搜狗首页的页面数据 import requests # 1.指定url url = 'https://www.sogou.com/' # 2.发起get请求:get方法会返回请求成功的响应对象 response = requests.get(url=url) # 3.获取响应中的数据:text属性作用是可以获取响应对象中字符串形式的页面数据 page_data = response.text # 4.持久化数据 with open("sougou.html","w&

python基础===基于requests模块上的协程【trip】

今天看博客get了一个有趣的模块,叫做 trip     #(pip install  trip) 兼容2.7版本 基于两大依赖包:TRIP: Tornado & Requests In Pair. 先看一下simple code: import trip @trip.coroutine def main(): r = yield trip.get('http://www.baidu.com/') print(r.content) trip.run(main) 于是又做了一个比较: import

python爬虫之requests模块

一. 登录事例 a. 查找汽车之家新闻 标题 链接 图片写入本地 import requests from bs4 import BeautifulSoup import uuid response = requests.get( 'http://www.autohome.com.cn/news/' ) response.encoding = 'gbk' soup = BeautifulSoup(response.text,'html.parser') # HTML会转换成对象 tag = so

04,Python网络爬虫之requests模块(1)

Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档症.抑郁.头疼.甚至死亡. 今日概要 基于requests的get请求 基于requests模块的post请求 基于requests模块ajax的get请求 基于requests模块ajax的post请求 综合项目练习:爬取国家药品监督管理总局中基于中华人民共和国化妆品生产许可证相关数据 知识点回顾 常见

爬虫学习 04.Python网络爬虫之requests模块(1)

爬虫学习 04.Python网络爬虫之requests模块(1) 引入 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. 警告:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症.冗余代码症.重新发明轮子症.啃文档症.抑郁.头疼.甚至死亡. 今日概要 基于requests的get请求 基于requests模块的post请求 基于requests模块ajax的get请求 基于requests模块ajax的post请求 综合项目练习:爬取国家药品监

网络爬虫之requests模块

一 . requests模块的学习 什么是requests模块 ? requests模块是python中原生的基于网络请求的模块,其主要作用是用来模拟浏览器发起请求.功能强大,用法简洁高效.在爬虫领域中占据着半壁江山的地位. 为什么要使用requests模块 因为在使用urllib模块的时候,会有诸多不便之处,总结如下: 手动处理url编码 手动处理post请求参数 处理cookie和代理操作繁琐 ...... 使用requests模块: 自动处理url编码 自动处理post请求参数 简化coo

爬虫学习 06.Python网络爬虫之requests模块(2)

爬虫学习 06.Python网络爬虫之requests模块(2) 今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 知识点回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 了解cookie和session - 无状态的http协议 如上图所示,HTTP协议 是无状态的协议,用户浏览服务器上的内容,只需要发送页面请求,服务器返回内容.对于服务器来说,并不关心,也并不知道是哪个用户的请求.对于一般浏览性的网页来说

Python高手之路【八】python基础之requests模块

1.Requests模块说明 Requests 是使用 Apache2 Licensed 许可证的 HTTP 库.用 Python 编写,真正的为人类着想. Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能,但是它的 API 太渣了.它是为另一个时代.另一个互联网所创建的.它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务. 在Python的世界里,事情不应该这么麻烦. Requests 使用的是 urllib3,因此继承了它的所有特性.Request

Python爬虫教程-09-error 模块

Python爬虫教程-09-error模块 今天的主角是error,爬取的时候,很容易出现错,所以我们要在代码里做一些,常见错误的处,关于urllib.error URLError URLError 产生的原因: 1.无网络连接 2.服务器连接失败 3.找不到指定的服务器 4.URLError是OSError的子类 案例v9文件:https://xpwi.github.io/py/py%E7%88%AC%E8%99%AB/py09error.py # 案例v9 # URLError的使用 fro