Php curl请求返回'405 Not Allowed',还有其他的抓取方法吗?

问题描述 投票:0回答:1

我正在使用php curl,我的代码正在为其他网站工作,但当我请求这个网址https://i.local.ch/#q?q=manager&origin=&rid=ac8EV&sort=relevance它返回:

405不允许使用nginx

注意:SSl在我的域中处于活动状态

include "simple_html_dom.php";
$url="https://i.local.ch/#q?q=manager&origin=&rid=ac8EV&sort=relevance";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);

$info = curl_getinfo($ch);
print_r( $info );

echo var_dump($server_output);
php curl web-scraping http-status-code-405
1个回答
0
投票

当Web服务器不允许HTTP方法请求URL时,会导致HTTP 405错误。

从浏览器发出相同的请求并检查请求标头。确保您在提出请求时使用正确的方法获取,发布或放置。还要检查是否有任何其他标头随请求一起发送,因为某些网址只允许来自ajax请求,您可以通过添加带有请求的正确标头来实现此目的。

您可以使用以下方法发送其他标头


curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    "Accept-Charset" => "ISO-8859-1,utf-8;q=0.7,*;q=0.7",
    "Keep-Alive" => "115",
    "Connection" => "keep-alive",
    "X-Requested-With" => "XMLHttpRequest"
));


© www.soinside.com 2019 - 2024. All rights reserved.