我看到很多问题与我的问题相符。但他们都没有提供任何可行的解决方案。因此,我需要简单的解决方案而不是复杂的功能。请我不要'想要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行
答案 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从页面解析数据,并将它们转换为您想要的数据类型(对象类,数组等)。