首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从wikisource.org站点获取数据

从wikisource.org站点获取数据
EN

Stack Overflow用户
提问于 2012-11-26 04:11:24
回答 1查看 311关注 0票数 0

我正在尝试从这个网站获取邮政编码:

http://pl.wikisource.org/wiki/Lista_kod%C3%B3w_pocztowych_w_Polsce

我的代码很简单:

代码语言:javascript
复制
 <?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是有效的)时,我收到了错误:

代码语言:javascript
复制
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 

页面地址是正确的,您可以复制和粘贴它在您的网络浏览器和它的工作。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-26 05:05:36

当Lightness在轨道上赛跑时,似乎PHP服务器确实阻止了PHP的请求。

使用cURL而不是file_get_contents()揭示了详细信息:

HTTP/1.0 403 Forbidden

脚本应使用包含联系信息的信息性User-Agent字符串,否则它们可能会在没有通知的情况下被IP阻止。

web浏览器在其请求中发送有效的User-Agent标头,这就是为什么页面在浏览器中可以正常加载,但在PHP中不能正常加载。

在我用PHP加载这个URL的测试中,有时成功,HTTP状态码为200,有时失败,状态码为403。请注意,错误消息指出脚本可能会被阻止(即.有时它们可能不会被阻止)。

编辑

有关更多信息,请参阅此问题:How to get results from the Wikipedia API with PHP?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13555013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档