一、使用网络爬虫技术抓取《穿靴子的猫2》在豆瓣电影上的所有页的影评数据进入火狐浏览器抓取地址:httpsmoviedoubancomsubject25868125步骤1:借助Selenium库点击进入电影全部影评步骤2:从’httpsmoviedoubancomsubject25868125commentsstart=0&limit=20&status=P&sort=new_score’地址开始抓
步骤1:
首先需要安装selenium库和对应的浏览器驱动,这里以火狐浏览器为例,可以在官网下载对应的驱动:https://github.com/mozilla/geckodriver/releases
接着,使用selenium模拟点击进入全部影评:
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_path = 'path/to/geckodriver'
# 创建浏览器对象,启动火狐浏览器
browser = webdriver.Firefox(executable_path=driver_path)
# 打开豆瓣电影页面
url = 'https://movie.douban.com/subject/25868125/'
browser.get(url)
# 点击“全部影评”按钮
btn = WebDriverWait(browser, 10).until(
EC.presence_of_element_located((By.LINK_TEXT, '全部影评'))
)
btn.click()
步骤2:
接下来,我们需要从第一页开始抓取评论数据。每一页的地址中,start参数表示起始位置,limit参数表示每页评论数量,status参数表示评论状态,sort参数表示排序方式。我们需要循环遍历每一页,直到抓取完所有评论。
import time
# 抓取所有评论
comments = []
start = 0
while True:
# 构造当前页面的地址
url = f'https://movie.douban.com/subject/25868125/comments?start={start}&limit=20&status=P&sort=new_score'
browser.get(url)
# 等待评论加载完成
WebDriverWait(browser, 10).until(
EC.presence_of_element_located((By.CLASS_NAME, 'comment-item'))
)
time.sleep(1)
# 解析评论数据
items = browser.find_elements_by_class_name('comment-item')
for item in items:
name = item.find_element_by_tag_name('a').text # 评论人名称
time_str = item.find_element_by_class_name('comment-time').get_attribute('title') # 评论时间
content = item.find_element_by_class_name('short').text # 评论
comments.append({
'name': name,
'time': time_str,
'content': content
})
# 检查是否有下一页
next_page = browser.find_element_by_class_name('next')
if 'disabled' in next_page.get_attribute('class'):
break
else:
start += 20
# 关闭浏览器
browser.quit()
# 输出评论数据
for comment in comments:
print(comment)
这样,我们就成功抓取了《穿靴子的猫2》在豆瓣电影上所有影评的数据
原文地址: http://www.cveoy.top/t/topic/g7jO 著作权归作者所有。请勿转载和采集!