如何使用爬虫爬取豆瓣网的电影信息

本文介绍了一种使用Python爬取豆瓣电影数据的方法。通过分析网页请求,确定了爬虫的目标URL,并利用User-Agent来伪装浏览器。该教程展示了如何翻页获取数据、解析JSON响应并将结果保存到TXT文件中。

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

第一步:进入豆瓣电影网站,右键打开检查,点击Network,查看url



第二步:寻找请求头:User-Agent



第三步:找规律,点击第一页,和第二页会发现start的间隔为20,url的start参数也从0变成20


第四部:敲代码

import json
import urllib.request
import urllib.parse


#请求头
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36"}

for i in range(0,100,20):
    #路由
    url='https://movie.douban.com/j/new_search_subjects?sort=T&range=0,10&tags=&start=%d'%(i)
    #请求体
    req=urllib.request.Request(url,headers=headers)
    #响应,并解码
    response=urllib.request.urlopen(req).read().decode('utf-8')
    # print(response)

    # 转成json数据
    data=json.loads(response)

    for i in data['data']:
        # 导演
        directors=i['directors']
        # 评分
        rate=i['rate']
        # 电影名
        title=i['title']
        # 明星
        casts=i['casts']
        #写入txt文件
        with open('moive.txt','a+',encoding='utf-8',errors='ingore')as f:
            f.write(str((directors,rate,title,casts))+'\n')
            f.flush()


### 爬取豆瓣电影评论并存储到Excel文件中的方法 要实现爬取豆瓣电影评论并将数据保存到Excel文件中,可以按照以下方式完成。以下是完整的解决方案,包括代码示例和相关说明。 #### 1. 准备工作 首先需要导入必要的库以支持请求网页、解析HTML以及处理Excel文件的功能。 ```python import requests from bs4 import BeautifulSoup import openpyxl ``` 这些库分别用于发送网络请求[^1]、解析HTML文档[^5]以及创建和操作Excel文件[^1]。 #### 2. 获取影评数据 通过指定电影ID,调用函数获取影评列表。以下是一个示例函数`get_reviews()`,用于抓取特定电影的评论: ```python def get_reviews(movie_id, page_limit=10): reviews = [] base_url = f"https://movie.douban.com/subject/{movie_id}/comments" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" } for page in range(page_limit): url = f"{base_url}?start={page * 20}&limit=20&sort=new_score&status=P" response = requests.get(url, headers=headers) if response.status_code != 200: continue soup = BeautifulSoup(response.text, 'lxml') comment_items = soup.find_all("div", class_="comment") for item in comment_items: review = {} review['username'] = item.find("span", class_="comment-info").a.string review['content'] = item.find("span", class_="short").string review['rating'] = len(item.find_all("span", class_="rating")) reviews.append(review) return reviews ``` 此函数通过循环分页获取影评,并提取用户名、评论内容及评分等信息[^2]。 #### 3. 存储数据到Excel 将获取到的影评数据保存到Excel文件中,可以使用`openpyxl`库来实现: ```python def save_to_excel(reviews, filename="reviews.xlsx"): wb = openpyxl.Workbook() ws = wb.active ws.append(["用户名", "评论内容", "评分"]) for review in reviews: ws.append([review['username'], review['content'], review['rating']]) wb.save(filename) ``` 该函数定义了Excel表格的列标题,并逐行写入每条评论的数据[^3]。 #### 4. 主程序逻辑 将上述功能整合到主程序中,确保流程清晰且易于扩展: ```python if __name__ == "__main__": movie_id = "1292052" # 示例电影ID,可以根据需求更改 reviews = get_reviews(movie_id) save_to_excel(reviews) print("影评已成功保存到Excel文件中。") ``` #### 注意事项 - 在实际运行过程中,可能需要调整请求头或增加延时以避免触发反爬机制[^4]。 - 如果需要处理更复杂的页面结构或动态加载的内容,可以考虑使用Selenium等工具[^5]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值