Python—爬取豆瓣电影排行榜

该代码段使用Python的requests库获取豆瓣电影Top250纪录片的评分、排行、网址、类型、国籍、电影名、发布日期及演员信息,并存储到Excel表格中。每20部电影为一页,支持分页爬取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import requests
import json
from xlutils.copy import copy
import xlrd
import xlwt

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36'
}
url = 'https://movie.douban.com/j/chart/top_list?'
excel = xlwt.Workbook()
sheet = excel.add_sheet('纪录片')
sheet.write(0, 0, '评分')
sheet.write(0, 1, '排行')
sheet.write(0, 2, '网址')
sheet.write(0, 3, '类型')
sheet.write(0, 4, '国籍')
sheet.write(0, 5, '电影名')
sheet.write(0, 6, '发布日期')
sheet.write(0, 7, '演员')
start = 0
n = 1

param = {
    'type': '1',
    'interval_id': '100:90',
    'action': '',
    'start': start,
    'limit': '20',
}
response = requests.get(url=url, params=param, headers=headers)  # 返回一个列表数据response
li_data = json.loads(response.text)

# score-评分
# rank-排行
# url-网址
# types-类型
# regions-国籍
# title-名称
# release_date-发布日期
# actors-演员

for i in li_data:
    score = i['score']
    rank = str(i['rank'])
    url = i['url']
    types = ','.join(i['types'])
    regions = ','.join(i['regions'])
    title = i['title']
    release_date = i['release_date']
    actors = ','.join(i['actors'])

    sheet.write(n, 0, score)
    sheet.write(n, 1, rank)
    sheet.write(n, 2, url)
    sheet.write(n, 3, types)
    sheet.write(n, 4, regions)
    sheet.write(n, 5, title)
    sheet.write(n, 6, release_date)
    sheet.write(n, 7, actors)

    n += 1
    print(score, rank, url, types, regions, title, release_date, actors)
    # print(i)
start += 20
excel.save('D:/pycharm_pro/爬虫/My_Demo/豆瓣电影.xls')

print('start=%d' % start)

 

Python爬取豆瓣喜剧排行榜通常需要利用网络爬虫技术,比如使用requests库获取网页数据,然后解析HTML内容,常常配合BeautifulSoup或lxml这样的库来提取所需信息。以下是简单的步骤: 1. **安装必要的库**:首先确保已安装`requests`, `beautifulsoup4`等库,如果没有可以使用`pip install requests beautifulsoup4`命令。 2. **发送请求**:使用`requests.get()`函数向豆瓣电影Top250喜剧榜页面发送GET请求。 ```python import requests url = 'https://movie.douban.com/top250?sort=rank&interval=year&category=10&start=' page_num = 1 # 起始页数,通常从1开始 ``` 3. **解析响应**:使用BeautifulSoup解析返回的HTML,找到包含电影信息的部分,如电影名、评分、导演等。 ```python response = requests.get(url + str(page_num)) soup = BeautifulSoup(response.text, 'html.parser') comedy_list = soup.select('.item') # 假设电影信息在class为"item"的元素中 ``` 4. **处理数据**:遍历提取到的电影信息,并将其存储在一个列表或其他数据结构中,如字典或pandas DataFrame。 ```python data = [] for movie in comedy_list: title = movie.find('span', {'property': 'title'}).text rating = movie.find('span', class_='rating_num').text director = movie.find('span', class_='導演').text data.append({ 'title': title, 'rating': rating, 'director': director }) ``` 5. **分页爬取**:如果有多页数据,循环发送请求,直到获取完所有页的数据。 6. **保存数据**:后,你可以将数据保存到文件(CSV, JSON, 或数据库)供进一步分析或展示。 请注意,豆瓣网站有反爬机制,频繁的爬取可能会导致IP被封禁。在实际操作中,建议设置延时并遵守豆瓣的robots.txt协议。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值