我试图使用Python的urllib.request
下载一些内容。以下命令产生异常:
import urllib.request
print(urllib.request.urlopen("https://fpgroup.foreignpolicy.com/foreign-policy-releases-mayjune-spy-issue/").code)
结果:
^{pr2}$如果使用firefox的一个链接和一个浏览器的代码,我可以使用200。如果我用山猫,奇怪的是,我也能得到403。在
我希望所有的方法都能奏效
为什么不是这样?在
我试着用这个代码,一切都没问题。在
我刚刚在请求中添加了
headers
。参见以下示例:输出:
^{pr2}$很有可能是这个网站在阻止人们浏览他们的网站。你可以在一个基本的层面上欺骗他们,包括头信息和其他东西。更多信息请参阅此处。在
引自:https://docs.python.org/3/howto/urllib2.html#headers
有很多原因可以解释为什么人们不想让脚本破坏他们的网站。它需要他们的带宽。他们不想让人们通过制造一个“刮宝机器人”(scrapbot)从中获益(金钱方面)。也许他们不想让你复制他们的网站信息。你也可以把它当作一本书。作者希望人们阅读他们的书,但也许他们中的一些人不希望机器人扫描他们的书,创建一个非拷贝,或者也许机器人可能会总结它。在
你在评论中的问题的第二部分是含糊和宽泛的回答,因为这里有太多自以为是的答案。在
相关问题 更多 >
编程相关推荐