【lenium】headless模式下遇到403反爬⾍校验
(Humanverifica。。。
headless模式下遇到 403 反爬⾍校验 (Human verification)被反爬⾍校验困扰了很久,今天终于解决,在此记录⼀下。
问题描述
⼯作需要爬取⼀些⽂章,本来想使⽤ go 简单写⼀下,没想到遇到了反爬⾍的⼈机校验,页⾯被拦截,返回 403 ,于是后⾯遇到了⼀个⼜⼀个的问题。羊皮卷之一
期间尝试了 go 的,,以及,均没有成功。
后来⼜尝试 python 的 scrapy ,最后是在尝试 lenium 关闭 headless 时,成功避开了 Human verification 。但是开启 headless 还是会出现 403 。
后来,在本地可以正常运⾏,但是部署到 linux 系统下,⼜冒出了新的问题,chromedriver 调⽤ chrome 失败,因为 chrome 在启动期间崩溃了。
在 stackoverflow 上查到是的解决⽅式⼀⼀尝试后均未解决,最后发现都需要设置⼀下options.add_argument('--headless'),
也就是说,最后还是要把 headless 启动,但是启动 headless ⼜会遇到 Human verification 。
兜兜转转⼀圈,最后还是要解决 403 的问题。
解决⽅式
因为在尝试 scrap y时,scrapy 是配置了Ur-Agent的,后来没有成功,所以后来在尝试 lenium 时,把这个注意的点忽略了。
男士穿衣打扮网我在开启 headless 后,同样也关闭了 sandbox ,⼿动配置了⼀下Ur-Agent就解决了。
下⾯是我的代码拼音字母表 26个 读法
如何编制现金流量表
中文翻译options = webdriver.ChromeOptions()
trottoptions.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
designeroptions.add_argument('lang=zh-CN.UTF-8')bpo是什么意思>acrylic
options.add_argument(f'ur-agent={ttings.USER_AGENT}')
prefs = {
'profile.managed_default_content_ttings.images': 2,
'profile.managed_default_ifications': 2,
enroll'intl.accept_languages': 'zh-CN,zh;q=0.9,en;q=0.5',
}
options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(chrome_options=options)
如果这种⽅式还是没有解决,还有⼀种⽅式可以尝试,那就是使⽤ mitmproxy 或者 charles ,在 lenium 请求时加上⼀层代理,我在本地可以调通,但是我还没有在 linux 上尝试。
推荐阅读