file_get_contents无法打开流:HTTP请求失败! HTTP / 1.1 500内部>服务器错误

时间:2017-11-14 21:00:17

标签: php web-scraping

我看到很多问题与我的问题相符。但他们都没有提供任何可行的解决方案。因此,我需要简单的解决方案而不是复杂的功能。请我不要'想要cURL。我已经用这段代码完成了很多工作。

我正在处理一个抓取项目,需要从ebay加载产品修订的内容。

我正在使用PHP函数

file_get_contents();

这是我遇到麻烦的网址。

https://cgi.ebay.com/ws/eBayISAPI.dll?ViewItemRevisionDetails&item=272908801183

这个file_get_contents();在不同的URL上工作得很好,但不知道为什么不在这上面。

这是我正在使用的代码。

<?php
$html = file_get_contents('https://cgi.ebay.com/ws/eBayISAPI.dll?ViewItemRevisionDetails&item=272908801183');
echo $html;
?>

但我收到此错误..

  

警告:   的file_get_contents(https://cgi.ebay.com/ws/eBayISAPI.dll?ViewItemRevisionDetails&&item=272908801183):   无法打开流:HTTP请求失败! HTTP / 1.1 500内部   服务器错误   /Users/samz/Documents/projects/scraping/test.php   在第3行

1 个答案:

答案 0 :(得分:6)

file_get_contents(阅读蓝色矩形上的提示)可以通过php.ini在服务器端轻松阻止,避免使用它。当您想从其他站点获取数据时,请使用curl。 http://php.net/manual/en/book.curl.php,有很多选项可供curl使用,通过播放一下以下代码可以使用你的网址。

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_URL,"https://cgi.ebay.com/ws/eBayISAPI.dll?ViewItemRevisionDetails&item=272908801183");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13");
$data = curl_exec($ch);
curl_close($ch);

通过回显$ data varible,你可以看到整个页面。

echo $data;

您可以尝试使用php DOM Methods从页面解析数据,并将它们转换为您想要的数据类型(对象类,数组等)。