Javascript Facebook知道我';我用PhantomJS刮它,它能改变它的网站来对付我吗?
所以,也许我有点偏执 我正在用PhantomJS为一个爱好项目抓取我的Facebook时间表。基本上,我编写了一个程序,通过在phantom的Javascript Facebook知道我';我用PhantomJS刮它,它能改变它的网站来对付我吗?,javascript,facebook,web-scraping,phantomjs,web-crawler,Javascript,Facebook,Web Scraping,Phantomjs,Web Crawler,所以,也许我有点偏执 我正在用PhantomJS为一个爱好项目抓取我的Facebook时间表。基本上,我编写了一个程序,通过在phantom的页面内使用XPATH查询页面中的文本赞助商。evaluate块来查找我的所有广告。文本显示为htmla元素的innerHTML 几天来一切都很顺利,它发现了大量的广告 然后它停止返回任何结果 当我手动登录Facebook再次检查这些元素时,我发现页面上出现了一个单词subsorted:位于带有css属性content:subsorted的伪类元素之后。这意
页面内使用XPATH查询页面中的文本赞助商
。evaluate
块来查找我的所有广告。文本显示为htmla
元素的innerHTML
几天来一切都很顺利,它发现了大量的广告
然后它停止返回任何结果
当我手动登录Facebook再次检查这些元素时,我发现页面上出现了一个单词subsorted
:位于带有css属性content:subsorted
的伪类元素之后。这意味着文本的XPATH查询不再产生任何结果。别开玩笑了,Facebook在被刮了几天后似乎改变了他们表达这个词的方式
偏执狂。我告诉过你
因此,我向Javascript、Web抓取和PhantomJS开发人员社区提出这个问题。到底发生了什么事。Facebook能知道我的PhantomJS程序在页面中做了什么吗
如果是,怎么做?例如,我的幻影命令会出现在页面中嵌入的键盘记录器程序中吗
你的一些理论是什么 即使用户代理被欺骗,也完全有可能检测到幻影。
它与其他浏览器有很多不同之处,其中包括:
- 标题顺序错误
- 缺少媒体插件和最新的JS功能
- PhantomJS特定方法,如
window.callPhantom
- 堆栈跟踪中的PhantomJS名称
还有很多其他的
有关详细信息,请参阅这篇优秀的文章和此处链接的演示文稿:
可能更适合您的需要,因为它基于真正的尖端Chromium浏览器。即使用户代理被欺骗,也完全有可能检测到PhantomJ。
它与其他浏览器有很多不同之处,其中包括:
- 标题顺序错误
- 缺少媒体插件和最新的JS功能
- PhantomJS特定方法,如
window.callPhantom
- 堆栈跟踪中的PhantomJS名称
还有很多其他的
有关详细信息,请参阅这篇优秀的文章和此处链接的演示文稿:
可能更适合您的需要,因为它基于真正的尖端Chromium浏览器。所以您认为HTML更改是因为您取消了网站?也许他们只是重新设计了它……收起你的锡纸帽。我知道我的锡纸帽没有你的维京人帽那么酷:)但你能回答一下,这是否至少可以检测到PhantomJS刮板在你的网站上做什么?他们能检测到它是PhantomJS吗。。。。。对他们知道它在做什么吗?他们可以记录动作就像任何人跟踪网页上的任何东西一样,但是代码。。。不但现在facebook知道了……我想你的问题缺少的部分是:你打电话时是否在欺骗浏览器用户代理?如果没有,我相信他们可以阅读PhantomJS字符串,这是大多数网站在测试scraper时寻找的设置。我知道很多公司只是根据用户代理重定向电话。我曾为一家将其重定向到一个网站的公司工作,该网站基本上说,使用免费api下载内容,而不是抓取。我是在欺骗是的,它(我认为)是一个通用代理--Mozilla/5.0(Macintosh;英特尔Mac OS X 10_13_1)AppleWebKit/537.36(KHTML,像Gecko)Chrome/62.0.3202.94 Safari/537.36
那么你认为HTML更改是因为你放弃了网站?也许他们只是重新设计了它……收起你的锡纸帽。我知道我的锡纸帽没有你的维京人帽那么酷:)但你能回答一下,这是否至少可以检测到PhantomJS刮板在你的网站上做什么?他们能检测到它是PhantomJS吗。。。。。对他们知道它在做什么吗?他们可以记录动作就像任何人跟踪网页上的任何东西一样,但是代码。。。不但现在facebook知道了……我想你的问题缺少的部分是:你打电话时是否在欺骗浏览器用户代理?如果没有,我相信他们可以阅读PhantomJS字符串,这是大多数网站在测试scraper时寻找的设置。我知道很多公司只是根据用户代理重定向电话。我曾为一家将其重定向到一个网站的公司工作,该网站基本上说,使用免费api下载内容,而不是抓取。我是在欺骗是的,它(我认为)是一个通用代理--Mozilla/5.0(Macintosh;英特尔Mac OS X 10_13_1)AppleWebKit/537.36(KHTML,像Gecko)Chrome/62.0.3202.94 Safari/537.36
并不是OP真正想要的。。。。Tin Foli Hat询问他们是否能看到他正在运行的代码。请仔细想想@epascarello:如果他们知道这是一个机器人,他们可以跟踪它在做什么。所以是的,这是可能的,虽然不太可能。但它不会知道页面中有代码读取部分。。。。它可以检测滚动、点击、加载的内容。如果它查看了页面的内容,它将不会有任何线索。我从未问过它是否可以看到我的代码。如果一个理解幻影的人代替你回答,也许他们可以回答页面。evaluate
块如何运行其命令,以及网站的外观如何,以及网站如何检测这些命令。谢谢@Vaviloff,你链接的那篇文章很棒,你的见解非常有帮助。这不是OP真正想问的。。。。Tin Foli Hat询问他们是否能看到他正在运行的代码。请仔细想想@epascarello:如果他们知道这是一个机器人,他们可以跟踪它在做什么。所以是的,这是可能的,虽然不太可能。但它不会知道有代码读取