【发布时间】:2012-11-13 08:22:54
【问题描述】:
我正在尝试从该站点获取邮政编码:
http://pl.wikisource.org/wiki/Lista_kod%C3%B3w_pocztowych_w_Polsce
我的代码很简单:
<?php
$postalCode = $_GET['code'];
$httpAddr = 'http://pl.wikisource.org/wiki/Lista_kod%C3%B3w_pocztowych_w_Polsce/Okr%C4%99g_'.$postalCode[0].'_'.$postalCode[0].$postalCode[1].'-xxx';
file_get_contents($httpAddr);
?>
但是当我将 $postalCode 设置为 03-000(也是 01-000、05-000,但对于 07-000、61-000、62-000 有效)时,我收到错误消息:
Warning: file_get_contents(http://pl.wikisource.org/wiki/Lista_kod%C3%B3w_pocztowych_w_Polsce/Okr%C4%99g_0_03-xxx): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /var/www/clients/client1/web4/web/ofix/test.php on line 5
页面地址正确,您可以在网络浏览器中复制并粘贴它,它可以工作。 有什么想法吗?
【问题讨论】:
-
网络服务器可能会为某些用户代理阻止它。在您的网络浏览器中输入相同的 URL 并不能证明太多。
-
这不是一次性工作吗,您不需要反复抓取这些数据吗?
-
但它总是适用于 02-000 之类的代码,而永远不会适用于 ex. 前缀为 01 的代码。