Facebook是否知道我在用PhantomJS搜刮它,它能否改变其网站来反击我?[英] Does Facebook know I'm scraping it with PhantomJS and can it change its website to counter me?

问题描述

所以,也许我是偏执的.

我正在使用phantomjs抓取我的Facebook时间轴进行业余爱好项目.基本上,我编写了一个程序,该程序通过查询文本Sponsored的页面,并在Phantom's page.evaluate块中查询文本Sponsored.文本被显示为HTML a元素的InnerHTML.

事情效果很好,已经有几天了,它正在发现大量的广告.

然后它停止返回任何结果.

当我手动登录Facebook以再次检查元素时,我发现单词Sponsored现在出现在页面上的::after pseudoclass元素,带有CSS属性content: sponsored.这意味着对文本的XPath查询不再产生任何结果.没有开玩笑,Facebook似乎改变了他们在被刮擦几天后渲染这个词的方式.

偏执.我告诉你了.

所以,我将这个问题提供给JavaScript,网络剪贴和Phantomjs开发人员的社区.到底他妈发生了什么. Facebook能否知道我的phantomjs程序在page.evaluate块内部正在做什么?

如果是这样,怎么样?例如,我的幻影命令会出现在页面中嵌入的关键记录器程序中吗?

您的一些理论是什么?

推荐答案

即使对用户的欺骗也可以检测到phantomjs. 它与其他浏览器有很多不同的方法:

:

  • 标题的错误顺序
  • 缺乏媒体插件和最新的JS功能
  • phantomjs特定方法,例如window.callPhantom
  • 堆栈跟踪中的phantomjs名称

和许多其他.

请参阅此处链接的这篇出色的文章和演示文稿,以获取详细信息: https://blog.shapesecurity.com/2015/01/22/detecting-phantomjs-lasightomjs-lase-basion-visitors/

也许 puppeteer 非常适合您的需求边缘铬浏览器.

本文地址:https://www.itbaoku.cn/post/1739921.html