使用Python爬虫抓取《穿靴子的猫2》豆瓣影评数据

本文将介绍使用Python爬虫技术,抓取《穿靴子的猫2》在豆瓣电影上的所有页的影评数据。数据包括评论人名称、评论时间和评论内容。

步骤

  1. 借助Selenium库,点击进入电影全部影评
  2. 从'https://movie.douban.com/subject/25868125/comments?start=0&limit=20&status=P&sort=new_score'地址开始,抓取第一页的评论人名称、评论时间以及评论。
  3. 继续抓取2-3页的所有评论人名称、评论时间以及评论。
  4. 将抓取到的数据以文件存储的方式,存储为json格式数据。

代码实现

import time
import json
from selenium import webdriver

# 设置Chrome浏览器的路径
CHROME_PATH = '/usr/bin/google-chrome'

# 设置Chrome浏览器驱动的路径
CHROMEDRIVER_PATH = '/usr/bin/chromedriver'

# 设置Chrome浏览器的选项
chrome_options = webdriver.ChromeOptions()

# 设置Chrome浏览器以无头模式运行
chrome_options.add_argument('--headless')

# 设置Chrome浏览器的路径和选项
browser = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, chrome_options=chrome_options)

# 设置豆瓣电影的地址
url = 'https://movie.douban.com/subject/25868125/'

# 打开豆瓣电影的页面
browser.get(url)

# 等待页面加载完成
time.sleep(5)

# 点击“全部影评”按钮
btn_all_comments = browser.find_element_by_xpath('//div[@class="review-hd"]/a')
btn_all_comments.click()

# 等待页面加载完成
time.sleep(5)

# 获取第一页的评论数据
comments = []
for i in range(0, 20):
    comment = {}
    # 获取评论人名称
    name = browser.find_element_by_xpath(f'//div[@class="comment-item"]/div[@class="comment"]/h3/span[@class="comment-info"]/a')
    comment['name'] = name.text
    # 获取评论时间
    time = browser.find_element_by_xpath(f'//div[@class="comment-item"]/div[@class="comment"]/h3/span[@class="comment-info"]/span[@class="comment-time"]')
    comment['time'] = time.text
    # 获取评论内容
    content = browser.find_element_by_xpath(f'//div[@class="comment-item"]/div[@class="comment"]/p')
    comment['content'] = content.text
    comments.append(comment)

# 获取第2-3页的评论数据
for j in range(1, 3):
    # 获取下一页的地址
    next_url = f'https://movie.douban.com/subject/25868125/comments?start={j*20}&limit=20&status=P&sort=new_score'
    # 打开下一页的页面
    browser.get(next_url)
    # 等待页面加载完成
    time.sleep(5)
    # 获取评论数据
    for i in range(0, 20):
        comment = {}
        # 获取评论人名称
        name = browser.find_element_by_xpath(f'//div[@class="comment-item"]/div[@class="comment"]/h3/span[@class="comment-info"]/a')
        comment['name'] = name.text
        # 获取评论时间
        time = browser.find_element_by_xpath(f'//div[@class="comment-item"]/div[@class="comment"]/h3/span[@class="comment-info"]/span[@class="comment-time"]')
        comment['time'] = time.text
        # 获取评论内容
        content = browser.find_element_by_xpath(f'//div[@class="comment-item"]/div[@class="comment"]/p')
        comment['content'] = content.text
        comments.append(comment)

# 关闭浏览器
browser.quit()

# 将评论数据存储为json格式的文件
with open('comments.json', 'w', encoding='utf-8') as f:
    json.dump(comments, f, ensure_ascii=False, indent=4)

注意

  • 代码中的CHROME_PATHCHROMEDRIVER_PATH需要根据实际情况进行修改。
  • 抓取数据时,需要遵守豆瓣电影的网站使用协议,避免过度抓取导致网站封禁。

希望本文能帮助你了解如何使用Python爬虫技术抓取豆瓣电影的影评数据。


原文地址: https://www.cveoy.top/t/topic/oBb1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录