大多数站点源都通过一个简单的请求打开,通常通过file_gets_contents()
或curl_init()
打开。
我尝试了很多stream_context_create()
和curl_setopt()
的组合,none返回了与400个坏请求不同的任何东西。
有没有解释为什么一些服务器站点(如https://phys.org/(不通过引用的方法返回源代码?
obs.:如果你能得到例子的来源(https://phys.org/(,使用file_gets_contents() or curl_init()
,或任何其他带有php的方法,请发布代码,谢谢。
如果请求来自真实/允许的客户端(bot/user(,一些网站正在验证该请求
这可能有多种原因。
也许机器人正在发送许多请求,或者特定网站被阻止在付费墙/防火墙后面。但还有很多其他人比我更能向你解释
以下是他们如何做到这一点的一些已知例子:
某些站点正在支持具有API-令牌的请求
Google API就是一个很好的例子。
某些网站正在验证用户代理
您的示例站点似乎正在执行此操作
发送自定义用户代理标头时,结果返回错误。
当然,一些网站可以检查用户IP地址:(
我相信在你的例子中应该有一个好的解决方案来取得结果。