请求现有URL时,远程服务器返回404

时间:2012-06-05 08:54:23

标签: curl http-status-code-404 remote-server

我又遇到了一个奇怪的问题:

我正在编写一个抓取工具来索引特定网站。几个星期以来它运行良好,我每小时发送太多请求时遇到了问题。

但现在我甚至无法访问单个页面。

但更奇怪的是:我必须通过POST提交一些表单值,但服务器返回404错误 - 尽管URL肯定是正确的。

我实施了许多技术来防止被认为是僵尸程序:更改用户代理,延迟,并且我发送Referer-header以假装表单是从他们自己的网站提交的。

这可能再次成为其服务器上的垃圾邮件或DDOS保护吗?还是有其他可能的错误来源?

2 个答案:

答案 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文件完全请求您发送的数据。