别去送死了!Selenium 与 Puppeteer 能被网站探测的几十个特征

02/26 08:30
阅读数 66

 
                 
                 
                 
↑ 关注 + 星标 ,每天学Python新技能


                
                
                
后台回复【大礼包】送你Python自学大礼包

摄影:产品经理
味道很好的毛血旺

很多人喜欢使用Selenium 或者 Puppeteer(Pyppeteer)通过模拟浏览器来编写爬虫,自以为这样可以不被网站检测到,想爬什么数据就爬什么数据。

但实际上,Selenium 启动的浏览器,有几十个特征可以被网站通过 JavaScript 探测到。Puppeteer 启动的浏览器,也有很多特征能够被网站探测。

如果你不相信,那么我们来做一个实验。首先你使用正常的浏览器打开如下网址:https://bot.sannysoft.com/。可以看到,页面的内容如下:

这个页面很长,你得滚动鼠标往下看。大部分都是绿色的。

接下来,使用Selenium启动一个 Chrome 的有头模式,再打开这个页面看看效果:

一开始WebDriver这一项就标红了,说明网站成功检测到你使用模拟浏览器了。你再往下翻,标红的都是可以被检测出的特征。

左边是普通浏览器,右边是模拟浏览器

左边是普通浏览器,右边是模拟浏览器。如果你一项一项对比,就会发现很多地方都不一样。

这还是有头模式的效果。我们来看看无头模式:

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

chrome_options = Options()
chrome_options.add_argument("--headless")

driver = Chrome('./chromedriver', options=chrome_options)
driver.get('https://bot.sannysoft.com/')
driver.save_screenshot('screenshot.png')

截图打开以后是下面这样的。不要吓到:

万里河山一片红

这么多特征都直接暴露了,你还隐藏个屁。网站只要想发现你,非常容易。

既然 Selenium 不行,那 Puppeteer 或者 Pyppeteer怎么样呢?我们使用 Pyppeteer 来做个实验。直接启动无头模式并截图。运行效果是下面这样的:

跟 Selenium 没什么区别。

所以,你还好意思继续用这两个东西来写爬虫?爬点没有安全意识的小网站可以。爬那些有强大安全团队和法务团队的公司,你就是在找死。


——End——


最近很多小伙伴找我要一些 MySQL基础资料,于是我翻箱倒柜,把这份阿里大牛总结的 MySQL 归纳笔记找出来,免费共享给大家!

据说有小伙伴靠这份笔记顺利进入 BAT 哦,所以一定要好好学习这份资料!

资料介绍

这份资料非常全面且详细,覆盖了 MySQL 基础学习的方方面面,非常适合初学者入门!

资料也按目录进行编排,每一章下面都有更具体的内容:

而且,这份资料不是扫描版的,里面的文字都可以直接复制,非常便于我们学习:


如何获取?

1. 识别并关注下方公众号、;
2. 在下面公众号后台回复关键字「
MySQL笔记」。

点击上方名片,回复「MySQL笔记」即可获取资料


     
     
     
  
       
       
       

  
       
       
       
    
         
         
         

   
        
        
        
精彩推荐


  1. 这可能是你近2年进腾讯的最好机会!

  2. 华为正式宣布养猪,网友沸腾:支持华为自救!

  3. 再见!马赛克

  4. 程序员大佬的简历和我们有啥区别?

  5. 手把手教你用Python进行SSH暴力破解

  6. 一个中科大差生的 8年 程序员工作总结

本文分享自微信公众号 - Python绿色通道(Python_channel)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部