undetected_chromedriver 可以防止浏览器特征被识别,并且可以根据浏览器版本自动下载驱动。
安装方式:
pip install git+https://github.com/ultrafunkamsterdam/undetected-chromedriver.git
一个简单的例子 ,懂车帝对selenium反爬挺厉害,通过undetected_chromedriver可轻松搞定。
import undetected_chromedriver as uc
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
uc.TARGET_VERSION = 91
driver = uc.Chrome()
driver.get('https://www.dongchedi.com/user/53334173333')
driver.find_element_by_xpath('//*[@id="__next"]/div[1]/div[2]/div/div[1]/div[2]/header/nav/a[2]').click()
driver.close()
还支持自定义功能
import undetected_chromedriver as uc
#specify chromedriver version to download and patch
#this did not work correctly until 1.2.1
uc.TARGET_VERSION = 78
# or specify your own chromedriver binary to patch
undetected_chromedriver.install(
executable_path='c:/users/user1/chromedriver.exe',
from selenium.webdriver import Chrome, ChromeOptions
opts = ChromeOptions()
opts.add_argument(f'--proxy-server=socks5://127.0.0.1:9050')
driver = Chrome(options=opts)
driver.get('https://distilnetworks.com')
undetected_chromedriver 可以防止浏览器特征被识别,并且可以根据浏览器版本自动下载驱动。安装方式:pip install git+https://github.com/ultrafunkamsterdam/undetected-chromedriver.git一个简单的例子 ,懂车帝对selenium反爬挺厉害,通过undetected_chromedriver可轻松搞定。import undetected_chromedriver as ucimport ss
问题背景:这个问题是在爬取某夕夕商城遇到的问题,原本的方案是用
selenium
+
chrome
driver
+ mitmproxy开心的刷,但是几天之后,发现刷不出来了,会直接跳转到登陆界面(很明显,是遭遇
反爬
了)
讲实话,这还是第一次用硒被
反爬
的,于是进行大规模的测试对比。
同台机器,用铬
浏览器
正常访问是不用跳转到登陆界面的,所以不是IP的问题。再用提琴手抓包对比了一下两个请求头,请求头都是一样的,所以忽略标头的
反爬
。
最后通过分析,可能是硒被检测出来了。于是就去查资料。大概的查到是和web
driver
的有关系的。因为这个在服务端是可以检测到的。于是通过fiddler抓包,全局搜索了一下w
un
detect
ed
-
chrome
driver
是一个
Python
库,用于在使用
Selenium
自动化测试时绕过
Chrome
浏览器
的自动化检测机制。以下是使用 un
detect
ed
-
chrome
driver
的详细步骤:
安装un
detect
ed
-
chrome
driver
:可以通过pip命令进行安装,如下所示:
pipinstall un
detect
ed
-
chrome
driver
反爬
比较严的网站会识别
selenium
driver
中的js属性,导致页面加载识别,可以通过本地手动驱动
浏览器
解决。
启动方式:在windows或者mac下找到
浏览器
执行文件,然后运行:/Applications/Google\
Chrome
.app/Contents/MacOS/Google\
Chrome
--remote-debugging-port=9222
#手动启动
浏览器
1.手动启动
chrome
。启动之前确保所有关闭
:return:
options =Options()
options.add_argument(--disable-extensions)
内容适合
爬虫
新人!
尝试爬的时候,时长遇到网站
反爬
,随即返回无效内容或跳转劝退网页!
反爬
确实令人作呕!找遍全网,希望能帮助到需要的人!仅做学习使用,有
更
好的方法,联系一下!
调用代码如下:
bb = web
driver
.
Chrome
(options=option)
#把文件放在程序相同路径
with open('stealth.min.js', 'r') as f:
js = f.read()
bb.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': js})
#url填好防
爬虫
地址
url = ''
bb.get(url)
time.sleep(15)
bb.encoding = 'UTF-8'
content = bb.page_source
print(content)
un
detect
ed
_
chrome
driver
优化的
Selenium
Chrome
driver
补丁程序不会触发
反
机器人服务,例如Distill Network / Imperva / DataDome / Botprotect.io。自动下载驱动程序二进制文件并对它进行修补。
从版本80开始测试,直到当前Beta
修补程序还可在MS
Ed
ge(基于
Chrome
)的Web
driver
二进制文件上使用
Python
3.6 ++
pip install un
detect
ed
-
chrome
driver
为
防止
不必要的拉扯和挑毛,请的。
简单方法(推荐)
import un
detect
ed
_
chrome
driver
as uc
driver
= uc .
Chrome
()
driver
. get ( 'https://distilnetworks.com' )
指定特定的
Chrome
版本
import un
detect
ed
_
chrome
driver
as uc
uc . TARGET_VERSION = 85
driver
= uc .
Chrome
()
猴子补丁模
anaconda:miniforge3
python
:3.9
注:网上很多人建议把将
python
版本升级为3.10.4,然后重新安装scrapy,但是,我找到的方法是不需要升级
python
等繁琐操作的。
提示:以下是本篇文章正文内容,下面案例可供参考
一、安装Scrapy
直接使用pip安装Scrapy:
pip install -i http