在Pyppeteer中正确隐藏window.navigator.webdriver
厨师:kingname
(文末福利)在我以前的一篇文章:
一日一技:如何正确移除Selenium中window.navigator.webdriver的值
,我讲到了如何在Selenium启动的Chrome中,通过设置启动参数隐藏
window.navigator.webdriver
,驳斥了网上垃圾文章中流传的使用JavaScript注入的弊端。
由于Selenium启动的Chrome中,有几十个特征可以被识别,所以在爬虫界已经没有以前那么受欢迎了。模拟浏览器的新秀Puppeteer异军突起,逐渐受到了爬虫界的关注。Puppeteer需要使用JavaScript来控制,如果你是用Python,那么就需要使用Pyppeteer.
如果你使用模拟浏览器爬淘宝,你会发现,无论怎么修改参数,Selenium总是可以立刻被识别。但是如果你使用了本文的方法,用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)