
由于Selenium启动了Chrome,因此可以识别许,因此它在爬行动物世界中并不像以前那么流行. 模仿浏览器的新秀Puppeteer突然出现,并逐渐引起了爬行动物世界的注意. Puppeteer需要使用JavaScript进行控制,如果您使用的是Python,则需要使用Pyppeteer.
如果使用模拟浏览器来爬淘宝,您会发现,无论如何修改参数,都可以立即识别硒. 但是,如果您使用本文的方法,使用Pyppeteer来抢淘宝,则会发现另一个广阔的世界.
今天,让我们讨论一下如何在Pyppeteer中隐藏window.navigator.webdriver
首先,我们使用以下代码通过Pyppeteer打开浏览器窗口:

import asyncio
from pyppeteer import launch
async def main():
browser = await launch(executablePath='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
headless=False)
page = await browser.newPage()
await page.goto('http://exercise.kingname.info')
input('测试完成以后回到这里按下回车...')
await browser.close()
asyncio.get_event_loop().run_until_complete(main())
代码运行后,它将打开Chrome浏览器并访问(这是我编写的爬虫练习网站. 您可以使用该网站来练习爬虫开发. 其中有几个问题^ _ ^)
在此浏览器中,我们打开开发人员工具并查询window.navigator.webdriver以查找其值为true. 如下图所示:


Internet上的代码无非就是注入JavaScript. 在加载网页随附的JavaScript之前,请先运行JavaScript的一部分,然后修改查询window.navigator.webdriver的界面.
每次打开新页面时都必须执行此方法,这既乏味又愚蠢!
那正确的方法是什么?
当我写这篇文章(2019-08-15)时,Pyppeteer的最新版本是0.0.25,如下图所示:


这时,在PyCharm中,您可以按住Command键(Windows,Linux用户按住Ctrl键),然后在frompyppeteerimportlaunch中左键单击启动selenium 隐藏浏览器,以自动跳至Pyppeteer中的launcher.py文件. 源代码.

在第60行周围将代码向上调,找到下面的框框起来的代码:


注释掉--enable-automation行. 此时,PyCharm将提示您是否修改源代码selenium 隐藏浏览器,选择确定. 如下所示.

修改后的代码如下:
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-260656-1.html
标准化和模块化的优势需要量积累
经济拖垮了怎么办
他航他的