Selenium与Web Scraping:自动化获取电影名称和评分的实战指南

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,1000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 在信息时代,Web Scraping 成为核心技能之一,尤其在面对如豆瓣电影这类动态网页时更为重要。本文介绍如何运用 Selenium 这一强大的自动化工具,配合代理 IP、User-Agent 及 Cookie,实现对豆瓣电影名称与评分的有效抓取。通过设置代理 IP 来规避访问限制,调整 User-Agent 以模拟真实用户行为,并利用 Cookie 保持会话状态,确保数据抓取的稳定性和隐蔽性。文中还提供了完整的 Python 代码示例,帮助读者快速上手实践。

爬虫代理.png

背景/引言

在信息化高度发展的今天,获取数据的能力变得尤为重要。通过 Web Scraping,我们可以从动态网页中提取有价值的信息,例如在豆瓣电影中获取电影名称和评分。然而,随着网站反爬虫措施的不断增强,传统的抓取技术已不再奏效。Selenium 作为一个强大的网页自动化工具,可以模拟用户操作,帮助我们实现更复杂和更可靠的数据抓取。
本文将带您深入了解如何利用 Selenium 实现自动化获取豆瓣电影中的电影名称和评分,并展示如何通过代理 IP、User-Agent 和 Cookie 技术来提升爬虫的隐蔽性和稳定性。

正文

1. Selenium 简介与基本设置

Selenium 是一个用于自动化浏览器操作的开源工具,能够控制浏览器执行点击、输入、滚动等操作,非常适合处理动态加载的网页。为了确保在抓取豆瓣电影数据时不被识别为爬虫,我们将使用代理 IP、设置 User-Agent 和 Cookie 来伪装请求。

2. 代理 IP 的设置

使用代理 IP 是为了防止被目标网站限制。这里我们使用亿牛云爬虫代理的域名和端口,并提供用户名和密码进行认证。

3. User-Agent 和 Cookie 的设置

通过设置 User-Agent,可以让服务器认为请求来自某个特定的浏览器版本,而不是自动化脚本。Cookie 的使用可以保持登录状态或模拟用户的会话,以获取需要的数据。

4. 代码实现

以下是使用 Selenium 实现自动化抓取豆瓣电影中电影名称和评分的完整示例代码。代码中已加入代理 IP、User-Agent 和 Cookie 的设置。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

# 设置代理IP相关信息 亿牛云爬虫代理 www.16yun.cn
proxy_host = "代理服务器" 
proxy_port = "代理端口"  
proxy_username = "你的用户名"
proxy_password = "你的密码"

# 配置 ChromeOptions
chrome_options = Options()
chrome_options.add_argument("--proxy-server=http://%s:%s@%s:%s" % (proxy_username, proxy_password, proxy_host, proxy_port))

# 设置 User-Agent 和禁用浏览器检测功能
chrome_options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36")
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--headless")  # 如果你希望无界面运行
chrome_options.add_argument("--no-sandbox")

# 设置 Cookies(这里假设你已经有一些 Cookie)
cookies = {
   
   
    "name": "your_cookie_name",
    "value": "your_cookie_value",
    "domain": "douban.com"
}

# 启动 WebDriver
service = Service(executable_path="你的ChromeDriver路径")
driver = webdriver.Chrome(service=service, options=chrome_options)

# 打开目标网页
driver.get("https://movie.douban.com")

# 添加 Cookie
driver.add_cookie(cookies)

# 刷新页面以使 Cookies 生效
driver.refresh()

try:
    # 等待页面元素加载
    wait = WebDriverWait(driver, 10)
    movie_name_elements = wait.until(EC.presence_of_all_elements_located((By.XPATH, "//div[@class='title']")))
    rating_elements = wait.until(EC.presence_of_all_elements_located((By.XPATH, "//span[@class='rating_num']")))

    # 提取电影名称和评分
    movie_names = [element.text for element in movie_name_elements]
    ratings = [element.text for element in rating_elements]

    # 打印结果
    for name, rating in zip(movie_names, ratings):
        print(f"电影名称: {name}, 评分: {rating}")

finally:
    # 关闭 WebDriver
    driver.quit()

实例

假设我们需要抓取豆瓣电影中的电影名称和评分,以上代码展示了如何利用 Selenium 配置代理 IP、设置 User-Agent 和 Cookie 来实现这一目标。通过代理IP提高成功率,设置合适的 User-Agent 伪装请求,以及使用 Cookie 保持登录状态,我们能够有效地应对网站的反爬虫措施,获取所需的数据。

结论

Selenium 是一个功能强大的网页自动化工具,尤其在处理复杂的动态网页时表现出色。通过结合代理 IP、User-Agent 和 Cookie 等技术,我们可以更有效地进行 Web Scraping,获取需要的网络数据。本文提供的代码示例展示了如何抓取豆瓣电影中的电影名称和评分,您可以根据实际需求对其进行扩展和优化。

相关文章
|
2月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
2月前
|
Web App开发 前端开发 JavaScript
Playwright极速UI自动化实战指南
Playwright告别Selenium痛点,以智能等待、强大选择器、网络拦截与多设备模拟四大利器,提升自动化效率与稳定性。本文通过实战代码详解其加速秘籍,助你构建高效、可靠的UI测试方案。
|
2月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
284 0
|
3月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
4月前
|
Web App开发 存储 前端开发
Python+Selenium自动化爬取携程动态加载游记
Python+Selenium自动化爬取携程动态加载游记
|
26天前
|
弹性计算 人工智能 前端开发
在阿里云ECS上部署n8n自动化工作流:U2实例实战
本文介绍如何在阿里云ECS的u2i/u2a实例上部署开源工作流自动化平台n8n,利用Docker快速搭建并配置定时任务,实现如每日抓取MuleRun新AI Agent并推送通知等自动化流程。内容涵盖环境准备、安全组设置、实战案例与优化建议,助力高效构建低维护成本的自动化系统。
303 5
|
2月前
|
存储 JavaScript 安全
Web渗透-XSS漏洞深入及xss-labs靶场实战
XSS(跨站脚本攻击)是常见的Web安全漏洞,通过在网页中注入恶意脚本,窃取用户信息或执行非法操作。本文介绍其原理、分类(反射型、存储型、DOM型)、测试方法及xss-labs靶场实战案例,帮助理解与防御XSS攻击。
711 1
Web渗透-XSS漏洞深入及xss-labs靶场实战
|
1月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
3月前
|
人工智能 缓存 测试技术
Playwright进阶指南 (6) | 自动化测试实战
2025企业级测试解决方案全面解析:从单元测试到千级并发,构建高可用测试体系。结合Playwright智能工具,解决传统测试维护成本高、环境依赖强、执行效率低等痛点,提升测试成功率,内容从测试架构设计、电商系统实战框架、高级测试策略、Docker化部署、CI/CD集成及AI测试应用,助力测试工程师掌握前沿技术,打造高效稳定的测试流程。
Playwright进阶指南 (6) | 自动化测试实战
|
2月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
434 11