file_get_contents不会return源代码
file_get_contents won't return the source code
当我执行这段代码时:
var_dump(file_get_contents('http://www.zahnarzt-gisler.ch'));
我收到此错误:
Warning: file_get_contents(http://www.zahnarzt-gisler.ch): failed to
open stream: HTTP request failed! HTTP/1.1 403 Forbidden in
/home/httpd/vhosts/your-click.ch/httpdocs/wp-content/themes/your-click/ajax-request.php
on line 146 bool(false)
我不知道为什么会返回 false,因为当我更改 url 时,例如http://www.google.com 或任何其他 url,它将工作并且 returns 页面的源代码。
我想 url 一定有问题,但我觉得很奇怪,因为它 url 在线可用。
网站所有者可以禁止您不经询问就抓取他们的数据。
你可以只抓取页面,但你必须设置一个user-agent。 Curl 是必经之路。
file_get_contents() 是一个简单的螺丝刀。非常适合 header、HTTP 请求方法、超时、cookiejar、重定向和其他重要事项无关紧要的简单 GET 请求。
<?php
$config['useragent'] = 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0';
$ch = curl_init();
// Set the url, number of GET vars, GET data
curl_setopt($ch, CURLOPT_URL, 'http://www.zahnarzt-gisler.ch');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_USERAGENT, $config['useragent']);
// Execute request
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
当我执行这段代码时:
var_dump(file_get_contents('http://www.zahnarzt-gisler.ch'));
我收到此错误:
Warning: file_get_contents(http://www.zahnarzt-gisler.ch): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /home/httpd/vhosts/your-click.ch/httpdocs/wp-content/themes/your-click/ajax-request.php on line 146 bool(false)
我不知道为什么会返回 false,因为当我更改 url 时,例如http://www.google.com 或任何其他 url,它将工作并且 returns 页面的源代码。
我想 url 一定有问题,但我觉得很奇怪,因为它 url 在线可用。
网站所有者可以禁止您不经询问就抓取他们的数据。
你可以只抓取页面,但你必须设置一个user-agent。 Curl 是必经之路。
file_get_contents() 是一个简单的螺丝刀。非常适合 header、HTTP 请求方法、超时、cookiejar、重定向和其他重要事项无关紧要的简单 GET 请求。
<?php
$config['useragent'] = 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0';
$ch = curl_init();
// Set the url, number of GET vars, GET data
curl_setopt($ch, CURLOPT_URL, 'http://www.zahnarzt-gisler.ch');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_USERAGENT, $config['useragent']);
// Execute request
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>