大众点评反反爬之webdriver识别

在使用各类无界浏览器访问点评时,经常会出现首次就别识别或者访问几次被识别,但是在普通浏览器中却可以正常访问,因此点评一定是提取了浏览器的某些特征,网上搜索了一圈,也没进展,只剩一条路,调试代码吧,注意下图红框处aM属性是检测用户本地环境的关键属性

进入iK方法

继续进入iQ.getWebdriver()

继续进入jB方法,看你往哪跑!

其实就是判断navigator对象的webdriver属性,接下来就是怎么让点评识别不了这个属性,无非两种策略,一种是让无界浏览器本身就不带webdriver属性,最彻底的办法就是自己编译无界浏览器。第二种就是阻止(欺骗)点评js代码的识别,以puppeteer为例,在page加载前加上以下代码即可

await page.evaluateOnNewDocument(() => {
  Object.defineProperty(navigator, 'webdriver', {
     get: () => false,
  });
});

 

### 浏览器定制与反爬虫机制 为了有效应对网站的反爬虫机制,可以采用多种技术手段对浏览器进行定制化配置。以下是几种常见的方法及其原理: #### 1. 隐藏浏览器指纹 浏览器指纹是指通过收集用户的硬件、软件以及行为数据形成的一种唯一标识符。这种标识符可以帮助网站识别同一设备的不同请求。隐藏浏览器指纹可以通过以下方式实现[^1]: - **修改User-Agent**:模拟不同的操作系统和浏览器版本。 ```python from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64)") driver = webdriver.Chrome(options=options) ``` - **禁用自动化检测脚本**:某些网站会检测是否存在`navigator.webdriver`属性来判断是否为自动化工具运行的浏览器。可以通过执行JavaScript代码将其设置为`undefined`。 ```javascript Object.defineProperty(navigator, 'webdriver', {get: () => undefined}); ``` #### 2. 设置无头模式下的伪装参数 虽然无头(headless)模式提高了效率,但也容易被检测到。因此,在启用无头模式的同时需要增加额外的伪装措施: - 添加特定命令行选项使页面加载更接近真实环境。 ```python options.add_argument('--disable-blink-features=AutomationControlled') options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option('useAutomationExtension', False) ``` #### 3. 处理动态加载的内容 对于依赖JavaScript渲染的现代Web应用来说,仅抓取HTML源码可能无法获取全部所需信息。Selenium能够很好地解决这一问题,因为它支持等待直到指定条件满足后再继续操作。 #### 4. 绕过陷阱链接或其他交互验证 部分站点设置了专门用于捕捉爬虫的行为测试项目,比如点击不可见按钮或者填写虚假表单项等。了解这些设计背后逻辑之后便能针对性规避[^2]。 以上提到的技术组合起来构成了较为完整的解决方案框架,具体实施还需依据目标平台特性灵活调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

压码路

如果帮到你,可以意思一下吗?

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值