我想使用urllib2库抓取网页,并根据需要提取一些信息。我能够自由地浏览网站(从一个链接到另一个链接,等等),但是当我尝试解析它时,我收到错误
HTTP Error 503 : Service Temporarily Unavailable
我在网上搜索过它,发现当“网站的服务器当时不可用”时会出现此错误
阅读本文后我很困惑,如果网站服务器已关闭,那么它是如何启动并运行的(因为我能够浏览网页),如果服务器没有关闭,那么为什么我得到这个503错误。< / p>
服务器是否有可能阻止解析网页
提前致谢。
答案 0 :(得分:2)
很可能您的用户代理被禁止进入服务器,以避免网络抓取工具。因此,某些网站(包括维基百科)在使用不需要的用户代理(例如wget,curl,urllib,...)时出现50x错误
但是,更改用户代理可能就足够了。至少,维基百科就是这种情况,使用Firefox用户代理时效果很好。 (“bann”很可能只依赖于用户代理)。
最后,这些网站必须有理由禁止网页抓取工具。根据您正在处理的内容,您可能希望使用其他解决方案。例如,维基百科提供database dumps,如果您打算大量使用它,这可能很方便。
PS。 Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11
是我用于维基百科的用户代理。