python获取豆瓣电影

本文介绍了如何使用Python通过requests库获取豆瓣电影的JSON数据,特别是利用递归爬取多页电影信息。首先,找到实际数据所在的URL,然后解析JSON获取'subjects'中的电影列表,保存所需信息。每页加载更多时,URL的计数器加20,以此实现对后续页面的爬取。这种方法同样适用于豆瓣电影的其他类别。
摘要由CSDN通过智能技术生成

打开豆瓣,点击选电影
在这里插入图片描述
到这里你会发现很简单,直接用xpath不久很容易获取到电影名及评分了吗。其实我们看到的页面是经js渲染过的,真正数据的网页在⬇
在这里插入图片描述
当你点击加载更多时,会发现这个网址的前部分不变,0变成20。
我们先来获取热门这一类。
用requests获取到的是json格式的数据,也就是python中的字典。
获取‘subjects’对应的值,是一个包含电影信息的列表。
遍历列表,即可获取对应的影片信息,择需保存。
完成一页后,判断这一页是否获取到信息。若有,则继续下一页获取。
获取方式,增加20计数器,递归自身。

base_url = 'https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start='
count = 0


def download():
    url = base_url + str(count)
    result = requests.get(url=url, headers=header)
    result_json = json.loads(result.text)['subjects']
    print(result_json)
    for item in result_json:
        film_name = item['title']
        rate = item['rate']
        url = item['url']
        content = '影片名:' + film_name + '\n豆瓣评分:' + rate + '\n网址:' + url + '\n\n'
        with open('豆瓣电影/' +
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,可以使用Python的requests库和BeautifulSoup库来实现这个任务。具体步骤如下: 1. 导入所需的库 ```python import requests from bs4 import BeautifulSoup ``` 2. 构造豆瓣电影Top250的URL地址列表 豆瓣电影Top250的每一页URL地址都是类似这样的:https://movie.douban.com/top250?start=0&filter=,其中start参数表示从哪个位置开始获取电影信息,filter参数表示按照什么方式进行筛选。我们可以通过循环遍历这些URL地址来获取所有的电影信息。 ```python urls = [] for i in range(10): url = 'https://movie.douban.com/top250?start={}&filter='.format(i * 25) urls.append(url) ``` 3. 遍历URL地址列表,获取每个页面的源代码,并保存到本地文件 ```python for url in urls: # 发送网络请求,获取页面源代码 response = requests.get(url) html = response.text # 解析页面源代码,获取电影信息 soup = BeautifulSoup(html, 'html.parser') # TODO: 在这里编写提取电影信息的代码 # 保存页面源代码到本地文件 with open('douban_top250_{}.html'.format(url[-7:-1]), 'w', encoding='utf-8') as f: f.write(html) ``` 在上面的代码中,我们使用了Python的文件操作来保存每个页面的源代码到本地文件。其中,文件名使用了URL地址中的start参数来区分不同的页面。这样,我们就可以在后面的信息提取过程中方便地读取这些本地文件,而不需要每次都发送网络请求获取源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值