使用Python爬虫抓取《穿靴子的猫2》豆瓣影评数据
使用Python爬虫抓取《穿靴子的猫2》豆瓣影评数据
本文将介绍使用Python爬虫技术,抓取《穿靴子的猫2》在豆瓣电影上的所有页的影评数据。数据包括评论人名称、评论时间和评论内容。
步骤
- 借助Selenium库,点击进入电影全部影评
- 从'https://movie.douban.com/subject/25868125/comments?start=0&limit=20&status=P&sort=new_score'地址开始,抓取第一页的评论人名称、评论时间以及评论。
- 继续抓取2-3页的所有评论人名称、评论时间以及评论。
- 将抓取到的数据以文件存储的方式,存储为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_PATH和CHROMEDRIVER_PATH需要根据实际情况进行修改。 - 抓取数据时,需要遵守豆瓣电影的网站使用协议,避免过度抓取导致网站封禁。
希望本文能帮助你了解如何使用Python爬虫技术抓取豆瓣电影的影评数据。
原文地址: https://www.cveoy.top/t/topic/oBb1 著作权归作者所有。请勿转载和采集!