使用 selenium
模拟浏览器进行数据抓取是目前最通用的爬虫方案,所见即所得。通吃各种数据加载方式,能绕过JS加密、爬虫检测、签名机制。
但是Selenium依然能被检测到,它在运行时会暴露出一些预定义的JavaScript变量(特征字符串),如"window.navigator.webdriver
",在非Selenium
环境下为undefined
,在Selenium
环境下为true
检测Selenium
检测 Selenium 的 JavaScript 代码
webdriver = window.navigator.webdriver;
if (webdriver) {
console.log('模拟浏览器')
} else {
console.log('正常浏览器')
}