我看到很多问题与我的问题相符.但他们都没有提供任何可行的解决方案.因此,我需要简单的解决方案而不是复杂的功能.请我不要'cURL.我已经用这段代码完成了很多工作.
我正在进行一个抓取项目,需要从ebay加载产品修订的内容.
我正在使用PHP函数
file_get_contents();
Run Code Online (Sandbox Code Playgroud)
这是我正在困扰的网址.
https://cgi.ebay.com/ws/eBayISAPI.dll?ViewItemRevisionDetails&item=272908801183
Run Code Online (Sandbox Code Playgroud)
这个file_get_contents(); 在不同的URL上工作得很好,但不知道为什么不在这上面.
这是我正在使用的代码.
<?php
$html = file_get_contents('https://cgi.ebay.com/ws/eBayISAPI.dll?ViewItemRevisionDetails&item=272908801183');
echo $html;
?>
Run Code Online (Sandbox Code Playgroud)
但是我收到了这个错误..
警告:file_get_contents(https://cgi.ebay.com/ws/eBayISAPI.dll?ViewItemRevisionDetails&&item=272908801183):无法打开流:HTTP请求失败!第3行/Users/samz/Documents/projects/scraping/test.php中的HTTP/1.1 500内部服务器错误
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);
Run Code Online (Sandbox Code Playgroud)
通过回显$ data varible,您可以看到整个页面.
echo $data;
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用php DOM方法从页面解析数据并将它们转换为您想要的数据类型(对象类,数组等).