爬虫-selenium基本介绍

目录

什么是selenium?

edge浏览器驱动和selenium安装

安装edge浏览器驱动

安装selenium

selenium的基本使用

使用Selenium的好处

1. 处理动态内容

2. 模拟用户行为

3. 应对反爬虫机制

4. 与浏览器一致的渲染


什么是selenium?

edge浏览器驱动和selenium安装

安装edge浏览器驱动

安装浏览器驱动时注意版本保持一致。

可以看到,我的edge浏览器的版本是129.0.2792.52,所以我就要根据这个版本下载对应的驱动:Microsoft Edge WebDriver |Microsoft Edge 开发人员

将压缩包解压到一个指定路径下。比如D:\software\edge_driver路径。访问百度,看看能否正常打开。记住你指定的路径,之后会用。接下来安装selenium

安装selenium

pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple

selenium的基本使用

这里访问百度首页。

from selenium import webdriver
from selenium.webdriver.edge.service import Service

# 指定 msedgedriver.exe 的路径
path = 'D:\\software\\edge_driver\\msedgedriver.exe'

# 创建一个 Service 对象
service = Service(executable_path=path)

# 初始化浏览器对象
browser = webdriver.Edge(service=service)

# 打开网址
url = 'https://www.baidu.com'
browser.get(url)
# 获取网页源码
content = browser.page_source
print(content)
# 等待用户输入,防止浏览器自动关闭
input("按回车键以关闭浏览器...")
browser.quit()

!!!注意:路径改成自己刚刚指定的路径

使用Selenium的好处

在爬虫中使用 Selenium 有以下几个关键好处,尤其是与传统的爬虫工具相比(如 requestsBeautifulSoup):

1. 处理动态内容

Selenium 的最大优势是能够处理动态网页。许多现代网站使用 JavaScript 动态生成内容,而传统的静态爬虫工具无法直接抓取这些内容。Selenium 模拟真实用户在浏览器中的行为,能够让 JavaScript 执行并加载页面的完整内容,包括:

  • 使用 AJAX 动态加载的内容
  • 滚动加载的无限列表(如社交媒体页面)
  • 交互式页面(例如点击、输入后加载的内容)

传统的爬虫工具只能抓取静态 HTML,因此在遇到动态网页时,无法获取完整的内容,而 Selenium 可以模拟浏览器执行 JavaScript 并提取加载后的数据。

2. 模拟用户行为

Selenium 可以模拟真实用户的操作流程,如:

  • 点击按钮、链接
  • 填写表单并提交
  • 选择下拉菜单中的选项
  • 滚动页面、放大缩小等

这种功能在需要爬取复杂网页时非常有用。例如,当需要登录才能访问某些数据时,Selenium 可以模拟用户输入用户名和密码、点击登录按钮等操作,爬取成功后再提取数据。

3. 应对反爬虫机制

许多网站有反爬虫机制,检测到频繁的自动化请求(例如通过 requests 发送的大量请求)会拒绝访问。而 Selenium 模拟的是真实浏览器行为,用户代理、Cookie 和浏览器特性与普通用户几乎没有区别,因此较难被检测到是爬虫工具。这使得它在一些有反爬虫机制的网站上更容易绕过限制。

另外,Selenium 能够自动处理页面加载、重定向和 JavaScript 触发的事件,减少反爬虫机制带来的障碍。

4. 与浏览器一致的渲染

使用 Selenium 抓取数据时,由于其直接运行在浏览器中,因此获得的页面内容与用户在浏览器中看到的完全一致。这包括:

  • 复杂的 CSS 样式
  • 动态生成的 DOM 元素
  • 图像、SVG 或其他动态内容

相比之下,使用 requests 抓取的内容有时会缺少页面的动态部分或与实际页面不符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值