所以,也许我有点偏执。在
我在用PhantomJS来做一个业余爱好项目。基本上,我编写了一个程序,它通过查询页面中的文本Sponsored
在phantom的page.evaluate
块中查询文本Sponsored
。文本显示为htmla
元素的innerHTML。在
几天来一切都很顺利,它发现了大量的广告
然后它停止返回任何结果。在
当我手动登录Facebook再次检查元素时,我发现单词Sponsored
现在出现在页面上的一个具有css属性content: sponsored
的::after
伪类元素中。这意味着文本的XPATH查询不再产生任何结果。不是开玩笑,Facebook在被刮了几天之后似乎改变了这个词的表达方式。在
偏执狂。我告诉过你。在
因此,我向Javascript、Web抓取和PhantomJS开发人员社区提出这个问题。到底是怎么回事。Facebook能知道我的PhantomJS程序在page.evaluate
块内做什么吗?在
如果是,怎么办?例如,我的幻影命令会出现在嵌入页面的键记录程序中吗?在
你的一些理论是什么?在
即使用户代理被欺骗,也完全可以检测到幻影。 它与其他浏览器有许多不同之处,其中包括:
window.callPhantom
还有很多其他人。在
有关详细信息,请参阅这篇优秀的文章和链接的演示文稿:https://blog.shapesecurity.com/2015/01/22/detecting-phantomjs-based-visitors/
也许puppeteer更适合您的需求,因为它基于真正的尖端铬浏览器。在
相关问题 更多 >
编程相关推荐