0


python爬虫-seleniumwire模拟浏览器反爬获取参数

文章目录


前言

在进行数据爬取时,有时候遇到一些比较复杂的js逆向。在不考虑访问效率的情况下,使用selenium模拟浏览器的方法可以大大减少反反爬逆向工作量。但普通的selenium库是无法获取到类似set-cookie等参数的,这时候需要用到selenium-wire库。其用法类似selenium


一、安装

首先安装selenium-wire库

pip install selenium-wire

安装selenium-wire
然后下载指定的chromedriver,根据电脑上的chrome版本进行下载
在这里插入图片描述
chromedriver下载地址

二、简易使用

from seleniumwire import webdriver

driver = webdriver.Chrome(executable_path='chromedriver.exe')
driver.get('https://www.baidu.com')

即可看到如下界面:
在这里插入图片描述
如果出现报错说chromedriver版本不匹配,并且提示了本地电脑上的chrome版本,则回到chromedriver下载地址下载相对应版本

三、加入参数

1. 隐藏浏览器窗口

如果要让浏览器窗口不显示而在后台允许,加入headless参数:

options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(executable_path='chromedriver.exe', options=options)

2. 添加cookies

使用add_cookie方法可以添加cookie,一次添加一个name和value

cookie ={'browserid':'12345678910','_ga':'12345678910','sessionid':'12345678910',}for name, value in cookie.items():
    driver.add_cookie({"name": name,"value": value,"domain":"baidu.com"})
driver.get('https://www.baidu.com')

此处可能会报错:
在这里插入图片描述
解决的办法是在add_cookie前先get一次

driver.get('https://www.baidu.com')
cookie ={'browserid':'12345678910','_ga':'12345678910','sessionid':'12345678910',}for name, value in cookie.items():
    driver.add_cookie({"name": name,"value": value,"domain":"baidu.com"})
driver.get('https://www.baidu.com')

之后即可成功访问并设置cookie,效果如下:
在这里插入图片描述

四、使用代理

有时候需要访问的网站需要科学上网,这时候需要为driver设置代理才能正常访问
代理设置为你自己的代理端口,我的是127.0.0.1:7890:

seleniumwire_options ={'proxy':{'http':'http://127.0.0.1:7890','https':'https://127.0.0.1:7890'}}# 注意是seleniumwire_options而不是options
driver = webdriver.Chrome(executable_path='chromedriver.exe', seleniumwire_options=seleniumwire_options)
driver.get('https://www.youtube.com')

这时就可以正常访问某些网站了

五、获取cookies等参数

使用get_cookies方法即可获取到访问过程中网页set的cookie值

for item in driver.get_cookies():print(item)

将输出类似如下结果:
在这里插入图片描述
也可以遍历requests获取所有访问历史的详情

for request in driver.requests:print(request.url)print(request.headers)print(request.response)

可以看到每个访问:
在这里插入图片描述


总结

以上就是使用python selenium-wire库的一些简单使用方法。希望对大家有所帮助


本文转载自: https://blog.csdn.net/XIAOXIANG233233/article/details/134914058
版权归原作者 flyingrtx 所有, 如有侵权,请联系我们删除。

“python爬虫-seleniumwire模拟浏览器反爬获取参数”的评论:

还没有评论