我有一个 PHP 抓取器,可以在我的本地完美运行。但是当我将它上传到我的 VPS (Ubuntu 16.04) 时,它无法从网站获取数据。相反,它显示此错误消息:
“卷曲:(56)GnuTLS 接收错误(-54):拉函数中的错误”
我更新了 Openssl、Curl、GnuTLS 仍然没有运气。尝试从命令行执行 CURL,它显示相同的错误。它应该与 CURL /GnuTLS 有关。我看到有些人在使用 Git 时有相同的错误消息并修复了它,但该解决方案在我的情况下不起作用。有什么办法可以解决吗?
这是我用来从网站获取数据的 PHP 函数:
function get_html($url)
{
$agent= 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Mobile Safari/537.36';
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Language: q=0.9,en-US;q=0.8,en;q=0.7',
'Connection: keep-alive'
));
curl_setopt($ch, CURLOPT_URL,$url);
$pageContent = curl_exec($ch);
curl_close($ch);
return $pageContent;
}
Run Code Online (Sandbox Code Playgroud)
提前致谢。