Python爬取豆瓣电影评论

文章概述

本文将详细介绍如何使用Python编写一个简单的爬虫来抓取豆瓣电影《千与千寻》的用户评论。我们将利用requests库来发送HTTP请求,使用BeautifulSoup库来解析HTML文档,从而提取出每条评论的内容。

技术栈

  • Python: 编程语言
  • requests: HTTP客户端库
  • BeautifulSoup: HTML/XML解析库
  • 环境准备

    确保安装了以下Python库:

  • requests
  • beautifulsoup4
  • 可通过pip安装:

    pip install requests beautifulsoup4

    代码详解

    1. 导入库

    import time
    import requests
    from bs4 import BeautifulSoup

    2. 设置时间戳

    t1 = time.time()

    3. 循环抓取评论

    for i in range(0, 200, 20):
        url = f'https://movie.douban.com/subject/1291561/comments?start={i}&limit=20&status=P&sort=new_score'
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.54'
        }
        reps = requests.get(url, headers=headers)
        html = reps.text
        soup = BeautifulSoup(html, 'html.parser')
        spans = soup.find_all('span', class_='short')
        r = '>(.*?)<'
        for span in spans:
            print(span.string)

    4. 计算总耗时

    t2 = time.time()
    print(t2 - t1)

    代码分析

    1. 时间记录:记录开始时间t1
    2. 循环抓取:从第0条评论开始,每次抓取20条评论,直到抓取200条评论为止。
    3. 发送HTTP请求:使用requests.get()方法获取网页内容,并设置请求头来模拟浏览器行为。
    4. 解析HTML:使用BeautifulSoup解析网页内容,提取所有的<span class="short">标签,这些标签包含了用户评论。
    5. 打印评论:输出每条评论的内容。
    6. 计算总耗时:记录结束时间t2,并计算总的耗时。

    注意事项

    1. 请求频率:为了避免被网站封禁,可以适当增加请求之间的延时,例如使用time.sleep()
    2. 异常处理:可以增加异常处理机制来增强程序的健壮性。
    3. 版权问题:请确保遵循相关网站的版权政策,不要用于商业用途。

    运行程序

    确保所需库已安装,然后运行上述脚本即可开始抓取评论。

    总结

    通过上述代码,我们实现了一个简单的爬虫,它可以抓取豆瓣电影《千与千寻》的用户评论。这种方法适用于快速抓取小规模的数据集。如果你需要更高级的功能或处理大量数据,可以考虑使用更复杂的技术如异步请求、多线程或多进程等。

    作者:库库林_沙琪马

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python爬取豆瓣电影评论

    发表回复