我又遇到了一个奇怪的问题:
我正在编写一个抓取工具来索引特定网站。几个星期以来它运行良好,我每小时发送太多请求时遇到了问题。
但现在我甚至无法访问单个页面。
但更奇怪的是:我必须通过POST提交一些表单值,但服务器返回404错误 - 尽管URL肯定是正确的。
我实施了许多技术来防止被认为是僵尸程序:更改用户代理,延迟,并且我发送Referer-header以假装表单是从他们自己的网站提交的。
这可能再次成为其服务器上的垃圾邮件或DDOS保护吗?还是有其他可能的错误来源?
答案 0 :(得分:0)
好的,刚解决了。
远程服务器的一个非常奇怪的行为导致了这个问题:当发送的参数多于预期时,它返回404而不是忽略不需要的参数。
答案 1 :(得分:0)
确保您的网址没有任何额外数据。
此:
curl_setopt($ch, CURLOPT_URL, 'http://www.aspsite.com/');
成为(注意消除了反斜杠):
curl_setopt($ch, CURLOPT_URL, 'http://www.aspsite.com');
如果您打算使用GET数据,请确保您的ASP文件完全请求您发送的数据。