Selenium——谷歌无头浏览器和预防检测

1:正常情况下使用selenium爬取数据

from selenium import webdriver


bro = webdriver.Chrome('./chromedriver.exe')
bro.get('https://www.baidu.com')
page_text = bro.page_source
print(page_text)

2:使用Options类来进行取界面化

  • from selenium.webdriver.chrome.options import Options

    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    
    bro = webdriver.Chrome('./chromedriver.exe', chrome_options=chrome_options)

    在头信息中通过上述代码引入Options类,然后在代码中实例化Options类,并且在实例化浏览器驱动程序的时候,引入参数chrome_options,进而实现无界面化的操作

3:整体代码

# 无头浏览器的使用

from selenium import webdriver
# 首先导入一个options的包,用来实现无头浏览器
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')

bro = webdriver.Chrome('./chromedriver.exe', chrome_options=chrome_options)
bro.get('https://www.baidu.com')
page_text = bro.page_source
print(page_text)

4:预防检测

         在使用selenium爬取数据时,有些网站会监测此请求是否是selenium发起,此时我们反反爬机制来进行伪装,进而规避检测。

  • 先引入options类from selenium.webdriver import ChromeOptions
  • 在代码块中添加如下语句
option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
  • 在初始化浏览器驱动的时候传入options参数,之后进行正常运行即可,如下所示
bro = webdriver.Chrome('./chromedriver.exe', chrome_options=chrome_options,options=option)

5:整体代码如下

# 无头浏览器的使用

from selenium import webdriver
# 首先导入一个options的包,实现无头浏览器
from selenium.webdriver.chrome.options import Options
# 用来规避检测
from selenium.webdriver import ChromeOptions

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')

option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])

bro = webdriver.Chrome('./chromedriver.exe', chrome_options=chrome_options,options=option)
bro.get('https://www.baidu.com')
page_text = bro.page_source
print(page_text)

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值