利用Python爬虫爬取豆瓣电影数据,获取热门电影排行榜,抓包利器

liftword2个月前 (03-24)技术文章6

动态加载数据的捕获(爬取豆瓣电影数据)

现在我打算爬取这个页面:

话不多说,先上代码:

import requests
# 爬取豆瓣电影中的动作片详情数据
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36'
}
url = 'https://movie.douban.com/typerank?type_name=%E5%8A%A8%E4%BD%9C&type=5&interval_id=100:90&action='

response = requests.get(url, headers=headers)
page_text = response.text
with open('./douban.html', 'w', encoding='utf-8') as f:
    f.write(page_text)

代码运行后,打开 douban.html:

我们发现,程序并没有爬取到相关数据。这是为什么呢?

动态加载数据的捕获

  • 什么叫做动态加载的数据?

我们通过requests模块进行爬取数据无法每次都实现可见即可得,有些数据是通过非浏览器地址栏中的url请求到的数据,而是其他请求 请求到的数据,那么这些通过请求请求到的数据就是动态加载的数据

  • 如何检测网页中是否存在动态加载数据

基于抓包工具动态进行局部搜索:

在当前网页中打开抓包工具,捕获到地址栏url对应的数据包,在该数据包中response选项卡搜索我们想要爬的数据,
如果搜索到了就不是动态加载数据,如果没有搜索到,那就是动态加载数据


如果数据为动态加载,那么我们如何铺货到动态加载的数据

基于抓包工具进行全局搜索

  • 定位到动态加载数据对应的数据包,从该数据包中就可以提取出
  1. 求的url
  2. 请求方式
  3. 请求携带的参数
  4. 看到响应的数据

现在我们就可以写代码进行爬取了:

url = 'https://movie.douban.com/j/chart/top_list'
params = {
    'type': '5',
    'interval_id': '100:90',
    'action': '',
    'start': '0',
    'limit': '20'
}
response = requests.get(url=url, params=params, headers=headers)
# .json() 将获取的字符串形式的json数据反序列化成字典或列表对象
page_text = response.json()
print(page_text)
# 解析出电影的名称+评分
for movie in page_text:
    name = movie['title']
    score = movie['score']
    print(name, score)

思考:

基于抓包工具进行全局搜索不一定每次都能定位到动态加载数据对应的数据包?

原因:如果动态加载的数据是经过加密的密文数据。(后续会详解)

关注 Python涛哥,学习更多Python知识!

相关文章

Python爬取小说技术指南

在 Python 中爬取小说需要遵循法律法规和网站的服务条款,请确保你有权获取目标内容。以下是使用 Python 爬取小说的通用技术流程安装依赖库pip install requests beauti...

python:最简单爬虫之爬取小说网Hello wrold

以下用最简单的示例来演示爬取某小说网的类目名称。新建一个retest.py,全文代码如下,读者可以复制后直接运行。代码中我尽量添加了一些注释便于理解。需要说明的一点,该小说网站如果后续更新改版了,文中...

Java原生代码实现爬虫(爬取小说)

Java也能做爬虫。现在提到爬虫人第一个想到的就是python,其实使用Java编写爬虫也是很好的选择,Java成熟的爬虫框架很多,下面给大家展示一个使用Java基础语言编写的爬取小说的案例:实现功能...

python爬虫教程之爬取当当网 Top 500 本五星好评书籍

我们使用 requests 和 re 来写一个爬虫作为一个爱看书的你(说的跟真的似的)怎么能发现好书呢?所以我们爬取当当网的前 500 本好五星评书籍怎么样?ok接下来就是学习 python 的正确姿...

Python爬虫:用Beautifulsoup爬取html文本数据

Beautifulsoup介绍:是一个高效的网页解析库,可以从HTML或XML文件中提取数据支持不同的解析器,比如,对HTML解析,对XML解析,对HTML5解析就是一个非常强大的工具,爬虫利器一个灵...

超有趣!用 Python 爬取抖音热门视频数据,探索爆款密码

在当今的社交媒体时代,抖音无疑是最热门的平台之一。每天都有海量的视频被上传,其中一些视频迅速走红,成为爆款。你是否好奇这些热门视频背后有什么规律?今天,我们就用 Python 来爬取抖音热门视频数据,...