ITPub博客

首页 > 数据库 > 数据库开发技术 > selenium去除特征值

selenium去除特征值

原创 数据库开发技术 作者:kanadeblisst 时间:2019-12-21 12:05:00 0 删除 编辑

前言

爬虫用的最多的工具是什么?requests?scrapy?我觉得应该是selenium,因为这个的门槛更低,基本会点编程语言就能操作。所以很多网站都会封杀selenium,其中最为简单的方法就是检测一些特征值,比如最主要的window.navigator.webdriver,其他还有window.navigator.languages、window.navigator.plugins.length等。如何避免使用selenium被识别出来?

正文

针对一些只检测特征值的网站,我们有以下两种办法可以解决

一、手动启动浏览器用selenium连接,这样启动的浏览器就不会包含一些属性了,原理也很简单,我都不用selenium启动了,怎么可能有selenium的特征值。

启动浏览器命令(chrome所在路劲一般是C:\Users\Administrator\AppData\Local\Google\Chrome\Application):

  1. chrome所在路劲\chrome.exe --remote-debugging-port=12306

selenium使用刚才启动的浏览器,代码如下:

  1. from selenium import webdriver

  2. from selenium.webdriver.chrome.options import Options


  3. options = Options()

  4. options.add_experimental_option("debuggerAddress", "127.0.0.1:12306")

  5. driver = webdriver.Chrome(options=options)

二、使用低版本的chrome,只要低于63版本的chrome在被selenium启动后都不会包含特征值,至于如何下载低版本请自行百度。至于如何让chrome不自动更新请自行百度。

另外,这仅仅是针对只检测特征值的网站,像一些网站还会检测selenium的api操作,比如一调用driver.find_就会被识别出来,这个暂时还找不到解决方法。只能去使用pyppeteer,这个工具强大的地方在于所有的操作都是原生的,不会因为某些操作(比如获取网页源码,查找元素)被检测出来。


原文作者:Python成长路;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2019-05-15

  • 博文量
    117
  • 访问量
    67426