[英]Reset php server browser cookies
我正在使用file_get_html抓取网站,但是如果我提出很多要求,我将被“禁止”,如果我想重新获得访问权限,则需要单击一些反机器人程序,它将解锁该网站,但仅用于浏览器/ pc在这里。 我的问题是有什么方法可以解除php浏览器的阻止(也许从另一个浏览器复制cookie?)而无需重新启动路由器(获取另一个ip地址)。
我确实有一个以前研究过的解决方案。 虽然不是100%合法。 但是,您正在执行的操作也不是很合法。...所以我认为可能不错。
此外,它们还会根据IP阻止您访问的反漫游器,清除cookie不会绕开任何操作。 即使您清除了cookie,您仍然会获得验证码页面。
首先,您知道反机器人网站赋予google-recaptcha权利了吗?
因此,您可以制作一个JavaScript来检测google-recaptcha div(我的情况是使用jQuery),如果检测到gcaptcha div,则可以使用第三方验证码解决方案API。 在我的情况下,我使用2captcha- >用您自己的代理发送给他们captcha id(对于gcaptcha代理是必要的,您可以用squid代理服务器托管一个代理)->然后他们向您发送g响应->您将g-响应发布回网站->取消阻止
价格非常非常便宜,对我来说价格是可以承受的,因此我将其视为一个很好的解决方案。
由于限制,我无法向您发布脚本,但是您可以在其网站上找到一些示例。
您的问题:因此,基本上,据我了解,我可以获取该验证码ID(发送给自己)并解决(例如2captcha.com人),然后抓取脚本将再次起作用。 我认为这只是基本的php和html,如果您有任何提示,我很高兴听到。 谢谢!
为此,我建议您使用浏览器的内置开发人员工具打开所有具有重新输入代码的登录页面,在编写任何代码之前进行一些检查。 我个人使用Opera Opera。
g-recaptcha-response=A_LONG_STRING_HERE_blablablabla
。 因此,每当出现recapcha时,post g-recaptcha-response都会通过验证。 现在,这是您的代码的一些建议。
对于php服务器端:
使用file_get_html之后,在Recaptcha中检测一些<div>
,例如<div class="rc-anchor-content">
。 如果检测到验证码,请停止抓取并等待答案,显示包含输入参数的页面,您将输入g-recaptcha-response
和一个提交按钮。
注意:如果您尝试复制<div class="g-recaptcha">
所有元素并将其显示在您的网站上,则可能会收到“ site-key”错误消息,因为验证码本身也会检测到显示在哪里从(URL)。 但是,如果您使用一些javascript,您也许可以欺骗它?(或者您可以尝试使用非javascript版本的recaptcha?disable javascript,并且会看到一个,不确定它是如何工作的)2captcha.com可能是这样做的,因为我您之前已经在其工作人员页面上看到了一个recaptcha,您可以注册一个工作人员帐户并检查其工作人员页面。
您需要在台式机上执行的操作:
使用正常的浏览器打开目标网站(必须与php浏览器具有相同的ip,才能使用代理),单击复选框,然后从Google复制json响应。 将此字符串提交到您的php服务器,记住一个g响应会话仅在3-5分钟内有效,它将过期。
回到PHP浏览器:
php服务器收到您的g-recaptcha-response发送,将其发布到目标网站(不要忘记其他发布值(如果存在)),取消阻止
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.