Selenium Edge的无头浏览器模式以及反WebDriver检测

1. Selenium Edge的配置

        由于本人只使用Edge浏览器,所以在得知Selenium对PantomJS的支持取消后,在网上找了各种关于Edge浏览器的资料。配置Selenium Edge有多种方法,但这里只介绍一种方法。

(1) 下载MSEdgeDriver驱动

MSEdgeDriver下载地址

 此处需要注意将浏览器更新到最新版本,以及选择正确的下载通道

解压下载的压缩包后会得到名为 msedgedriver.exe 的可执行程序,将这个程序放在任意一个地方,并将该文件所在的路径加入到系统的环境变量中

 这个是我的 msedgedriver.exe 存放地址

环境变量设置好之后重启电脑,如果没有出错,在cmd中输入msedgedriver将不会报错

(2) 安装Selenium库

pip install selenium>=4.3.0
# 也可以是下面的
pip install selenium

 需要注意的是selenium的版本要在4.0以上(其实3.0~4.0也可以,但是需要安装额外的库,为了简单,直接安装selenium4

(3) 使用Selenium

from selenium import webdriver
browser = webdriver.Edge()
url = "https://baidu.com"
browser.get(url)

​​​​​​​

 

 

出现上面的界面就说明selenium正常工作 

2. Edge无头浏览器模式

        如果不设置无头浏览器模式,在Selenium控制浏览器工作时浏览器的一举一动都会显示出来,会占用电脑的gpu。在调试代码时,浏览器的GUI界面能够提供帮助,但是在爬虫工作时,浏览器的GUI就显得多余了,关闭GUI可以节省一部分计算资源。

导入selenium库
from selenium import webdriver
# 在这里导入浏览器设置相关的类
from selenium.webdriver.edge.options import Options

# 无可视化界面设置 #

edge_options = Options()
# 使用无头模式
edge_options.add_argument('--headless')
# 禁用GPU,防止无头模式出现莫名的BUG
edge_options.add_argument('--disable-gpu')

# 将参数传给浏览器
browser = webdriver.Edge(options=edge_options)

# 启动浏览器
url = "https://baidu.com"
browser.get(url)
print(browser.title)

# 关闭浏览器
browser.quit()

 正常情况下会输出 “百度一下,你就知道”

2. 关于Selenium反反爬虫

        有时候,我们利用 Selenium 自动化爬取某些网站时,极有可能会遭遇反爬。

  实际上,我们使用默认的方式初始化 WebDriver 打开一个网站,下面这段 JS 代码永远为 True,而手动打开目标网站的话,则为:False。

上图是手动打开浏览器

下图是通过selenium打开浏览器

         稍微有一点反爬经验的工程师利用上面的差别,很容易判断访问对象是否为一个爬虫,然后对其做反爬处理,返回一堆脏数据或各种验证码。

反检测代码如下

导入selenium库
from selenium import webdriver
# 在这里导入浏览器设置相关的类
from selenium.webdriver.edge.options import Options

# 反检测设置 #

edge_options = Options()

# 开启开发者模式
edge_options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 禁用启用Blink运行时的功能
edge_options.add_argument('--disable-blink-features=AutomationControlled')


# 将参数传给浏览器
browser = webdriver.Edge(options=edge_options)

# 启动浏览器
url = "https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html"
browser.get(url)

代码中url所指网站可以检测浏览器是否通过selenium控制,如果未检测出selenium控制,则"WebDriver"一栏为绿色。

  • 27
    点赞
  • 110
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
Selenium是一个用于Web应用程序测试的工具,它可以模拟用户操作浏览器来执行各种任务。针对使用Edge浏览器进行爬虫的需求,需要注意以下几点: 首先,安装Selenium和对应的浏览器驱动。你可以使用conda或pip安装Selenium,根据你的需求选择合适的浏览器驱动。如果使用Edge浏览器,可以在https://msedgewebdriverstorage.z22.web.core.windows.net/ 下载对应版本的64位驱动,并将驱动文件(msedgedriver.exe)放置在Python或Anaconda的Scripts目录中。同时,可能还需要修改Selenium中的webdriver.py文件,将MicrosoftWebDriver.exe修改为msedgedriver.exe。 然后,导入所需的库和模块。在Python脚本中,你需要导入Seleniumwebdriver模块以及其他相关的模块,例如By、Keys和WebDriverWait等。同时,你可能还需要导入time和os模块,以便在爬虫过程中进行延时等操作。 接下来,你可以根据需要编写具体的爬虫代码。根据你的目标网站和具体需求,使用Selenium的相关方法和功能来模拟用户操作浏览器。你可以使用find_element方法来查找网页元素,使用send_keys方法来输入文本,使用click方法来点击按钮等等。通过结合WebDriverWait和expected_conditions等工具,可以实现更精准的等待和判断操作。 最后,运行你的爬虫代码。根据你选择的开发环境,可以直接运行Python脚本或在Jupyter Notebook中逐行执行代码。在运行过程中,Selenium会自动打开指定的浏览器,并模拟用户操作来执行爬虫任务。 需要注意的是,爬取网站的数据时,请遵守相关法律法规和网站的规定,确保你的行为合法合规。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [anaconda selenium使用Edge 爬虫](https://blog.csdn.net/puspos/article/details/118437785)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [基于Python SeleniumEdge浏览器下爬取商品信息](https://blog.csdn.net/Wanyunshou2018/article/details/121129660)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值