Puppeteer如何在工作中伪装自己(爬虫与反爬虫)

Puppeteer如何在工作中伪装自己(爬虫与反爬虫)

💡 原文英文,约500词,阅读约需2分钟。
📝

内容提要

本文介绍了检测网页程序是否为无头浏览器的方法及反检测策略,包括检查navigator.webdriver属性和chrome.runtime属性。通过删除webdriver属性或伪造chrome.runtime可绕过检测。由于浏览器和反爬虫技术不断更新,需持续关注和比较。

🎯

关键要点

  • 介绍了检测网页程序是否为无头浏览器的方法及反检测策略。
  • 无头浏览器模式下,navigator.webdriver属性返回true。
  • 检测方法包括使用defineProperty删除webdriver属性。
  • 可以通过直接删除webdriver属性来绕过检测。
  • 在无头浏览器模式下,chrome对象下没有runtime属性。
  • 可以伪造chrome.runtime属性来绕过检测。
  • 反爬虫技术和浏览器不断更新,需持续关注和比较。
  • 所有形式都可能有伪装和绕过的方法,核心在于观察和比较。

延伸问答

如何检测网页程序是否为无头浏览器?

可以通过检查navigator.webdriver属性来检测,如果返回true,则为无头浏览器。

如何绕过无头浏览器的检测?

可以直接删除webdriver属性或伪造chrome.runtime属性来绕过检测。

无头浏览器模式下chrome对象有什么特征?

在无头浏览器模式下,chrome对象下没有runtime属性。

使用defineProperty删除webdriver属性后,如何检测?

可以通过navigator.hasOwnProperty('webdriver')来检测,即使使用defineProperty删除了该属性。

为什么需要关注反爬虫技术的更新?

因为浏览器和反爬虫技术不断更新,旧的方法可能会失效,需要持续关注和比较。

有哪些方法可以伪装无头浏览器?

可以通过删除webdriver属性和伪造chrome.runtime属性来伪装无头浏览器。

➡️

继续阅读