实施(网址是有效且正在运行的网址):
$html = file_get_contents($url);
我在php中编写一个爬虫程序,有时file_get_contents会返回以下错误:
无法打开流:已关闭连接
这并不总是发生,所以当它发生时,它会让我感到困惑。这会是我身边的错误还是我爬行的网站?无论哪种方式都是明智的,继续重试,直到错误没有发生或有更好的方式?
答案 0 :(得分:1)
您需要为此
创建一个流<?php
// Create a stream
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
// Open the file using the HTTP headers set above
$file = file_get_contents($url, false, $context);
?>
答案 1 :(得分:1)
试试这种方式......
function url_get_contents ($Url) {
if (!function_exists('curl_init')){
die('CURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
答案 2 :(得分:0)
使用php CURL库http://php.net/manual/en/book.curl.php 为了更好地管理客户端请求,由于主机服务器上的安全限制,file_get_contents()函数失败