Heim >Backend-Entwicklung >PHP-Tutorial >抓取源码 - php抓取网页源码的问题

抓取源码 - php抓取网页源码的问题

WBOY
WBOYOriginal
2016-06-06 20:46:041501Durchsuche

抓取一般的页面没问题·。
但近期给一个网站个搞晕了·。请大神们帮帮忙看看是什么原因导致失败。谢谢

地址:http://183.36.249.82/

我们学校的图书馆。

我用的代码如下

<code><?php header ( "Content-type: text/html; charset=utf-8" );
$url = "http://183.36.249.82/"; 
$contents = file_get_contents($url); 
echo $contents; 
?>
</code>

但会出现这个错误:

Server Error in '/' Application.

Runtime Error

我用的服务器是SAE。也试过用SAE提供的fetch功能。

但可惜也是报错。

错误是:string(3) "500" string(21) "Internal Server Error"

多天研究原因不解。求解答。谢谢

回复内容:

抓取一般的页面没问题·。
但近期给一个网站个搞晕了·。请大神们帮帮忙看看是什么原因导致失败。谢谢

地址:http://183.36.249.82/

我们学校的图书馆。

我用的代码如下

<code><?php header ( "Content-type: text/html; charset=utf-8" );
$url = "http://183.36.249.82/"; 
$contents = file_get_contents($url); 
echo $contents; 
?>
</code>

但会出现这个错误:

Server Error in '/' Application.

Runtime Error

我用的服务器是SAE。也试过用SAE提供的fetch功能。

但可惜也是报错。

错误是:string(3) "500" string(21) "Internal Server Error"

多天研究原因不解。求解答。谢谢

file_get_contents抓取的时候,一般要设置一下HTTP context.抓取网页还是用cURL比较好.

<code class="lang-php"><?php $header = <<<HEADER
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.116 Safari/537.36
DNT: 1
Referer: http://183.36.249.82/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8

HEADER;

$context = stream_context_create(array(
    'http' => array(
        'method' => 'GET',
        'header' => $header,
        'timeout' => 10,
        'protocol_version' => '1.1',
    ),

));


$contents = file_get_contents('http://183.36.249.82/', false, $context); 
echo $contents; 
</code>

你没发现网站要求重定向了吗?是刚学php呢吧?换用curl吧,file_get_contents抓不下来这个的吧(显然我错了,看别人的回答就知道是可以的,没文化真可怕啊)。

给你个参考连接吧,我不想写代码了
http://segmentfault.com/q/1010000000484804#a-1020000000484819
问问题的人虽然问得是ruby的问题,但是人家的php代码估计够你参考用了。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:一个功能带来的高并发问题Nächster Artikel:PHP输出表格