Python爬取豆瓣电影《穿靴子的猫2》影评数据
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 设置浏览器驱动
driver = webdriver.Chrome()
# 打开电影页面
driver.get('https://movie.douban.com/subject/25868125/')
# 点击进入全部影评
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.btn-all'))).click()
# 爬取数据并存储
data = []
page = 1
while True:
# 等待所有评论加载
WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '.comment-item')))
comments = driver.find_elements_by_css_selector('.comment-item')
for comment in comments:
name = comment.find_element_by_css_selector('.comment-info>a').text
time = comment.find_element_by_css_selector('.comment-time').text
content = comment.find_element_by_css_selector('.short').text
data.append({'name': name, 'time': time, 'content': content})
# 翻页
try:
driver.find_element_by_css_selector('.next>a').click()
page += 1
except:
break
# 保存数据
with open('comments.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False)
# 关闭浏览器
driver.quit()
注意事项:
- 安装Selenium库:
pip install selenium - 确保已下载对应浏览器的驱动并配置环境变量。
- 使用
WebDriverWait确保元素加载完成再进行操作,避免出现异常。 - 可以根据需要修改代码中使用的CSS选择器。
- 爬取数据时,应遵守网站的爬虫协议,避免给网站服务器带来过大压力。
原文地址: https://www.cveoy.top/t/topic/oA3j 著作权归作者所有。请勿转载和采集!