Python爬虫实战:抓取豆瓣电影《穿靴子的猫2》影评数据

本项目使用Python语言和Selenium库,爬取豆瓣电影《穿靴子的猫2》的所有页面的影评数据,并以JSON格式存储,包含评论人名称、评论时间和评论内容。

一、项目目标

  • 使用网络爬虫技术,抓取豆瓣电影《穿靴子的猫2》的所有页面的影评数据。
  • 将抓取到的数据以文件存储的方式,存储为JSON格式数据。

二、项目步骤

  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

# 设置浏览器驱动路径
driver_path = 'your_driver_path'
# 设置抓取起始地址
base_url = 'https://movie.douban.com/subject/25868125/comments?start={}&limit=20&status=P&sort=new_score'
# 设置抓取页数
page_num = 3
# 设置抓取结果存储路径
file_path = 'comments.json'

# 初始化浏览器
driver = webdriver.Chrome(executable_path=driver_path)

# 点击进入电影全部影评
driver.get('https://movie.douban.com/subject/25868125/')
more_btn = driver.find_element_by_xpath('//span[@class="allstar50 rating"]')
more_btn.click()

# 循环抓取指定页数的评论
comments = []
for i in range(page_num):
    # 访问目标地址
    url = base_url.format(i*20)
    driver.get(url)
    time.sleep(2)  # 等待页面加载完毕
    
    # 获取评论信息
    comment_items = driver.find_elements_by_xpath('//div[@class="comment-item"]')
    for item in comment_items:
        name = item.find_element_by_xpath('.//a[@class=""]')
        time = item.find_element_by_xpath('.//span[@class="comment-time "]')
        content = item.find_element_by_xpath('.//span[@class="short"]')
        comment = {
            'name': name.text,
            'time': time.text,
            'content': content.text
        }
        comments.append(comment)

# 存储抓取结果
with open(file_path, 'w', encoding='utf-8') as f:
    json.dump(comments, f, ensure_ascii=False, indent=4)
    
# 关闭浏览器
driver.quit()

四、运行结果截图

image.png

五、项目总结

本项目通过Python爬虫技术抓取豆瓣电影《穿靴子的猫2》的影评数据,并以JSON格式存储,展示了如何使用Selenium库进行网页元素定位和数据提取,以及如何将数据存储为JSON格式。

注:

  • 以上代码需要安装selenium库,并下载对应浏览器的webdriver驱动。
  • 由于豆瓣网站的反爬虫机制,该代码可能无法正常运行,需要根据实际情况进行调整。
  • 请遵守相关法律法规,尊重网站的robots协议,不要进行恶意爬取。

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

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