尝试在特定URL上执行file_get_contents
时出现以下错误:http://lolking.net/champions/。在我尝试过的任何其他网页上执行file_get_contents
都没有问题。
错误是:
Warning: file_get_contents(http://lolking.net/champions) [function.file-get-contents]: failed to open stream: HTTP request failed!
我认为这个页面是故意阻止我的请求。我也试过使用cURL和伪造用户代理,但这两种方法都不起作用。
还有什么我可以做,试图从上述URL抓取信息?
这对我来说很有效,记住要有cookies.txt。
$cookie_file = "cookies.txt";
$url = 'http://www.lolking.net/champions';
$c = curl_init($url);
curl_setopt($c, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0");
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_FOLLOWLOCATION, 1);
$z = curl_getinfo($c);
$s = curl_exec($c);
curl_close($c);
echo $s;
Try
file_get_contents('http://www.lolking.net/champions/');
file_get_contents不能处理HTTP头重定向,而该页可以使其转到www.lolking.net。