当前位置: 首页 > 面试题库 >

使用Python获取Wikipedia文章

元景天
2023-03-14
问题内容

我尝试使用Python的urllib来获取Wikipedia文章:

f = urllib.urlopen("http://en.wikipedia.org/w/index.php?title=Albert_Einstein&printable=yes")           
s = f.read()
f.close()

但是,我得到的不是HTML页面,而是以下响应:错误-Wikimedia Foundation:

Request: GET http://en.wikipedia.org/w/index.php?title=Albert_Einstein&printable=yes, from 192.35.17.11 via knsq1.knams.wikimedia.org (squid/2.6.STABLE21) to ()
Error: ERR_ACCESS_DENIED, errno [No Error] at Tue, 23 Sep 2008 09:09:08 GMT

维基百科似乎阻止了不是来自标准浏览器的请求。

有人知道如何解决此问题吗?


问题答案:

你需要使用的urllib2是superseedes的urllib在蟒蛇STD库,以改变用户代理。

直接从例子

import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
infile = opener.open('http://en.wikipedia.org/w/index.php?title=Albert_Einstein&printable=yes')
page = infile.read()


 类似资料:
  • 问题内容: 如何使用Python从Wikipedia文章中提取第一段? 例如,对于 Albert Einstein ,那将是: 阿尔伯特·爱因斯坦(发音:/ ˈælbərt ˈaɪnstaɪn /;德语:[ˈalbɐt ˈaɪnʃtaɪn](听); 1879年3月14日至1955年4月18日)是一位理论物理学家,哲学家和作家,被广泛认为是最有影响力和标志性的科学家和知识分子之一所有的时间。爱因斯坦

  • 问题内容: 我目前从Python开始,我有很强的PHP背景,在PHP中,我习惯于用作文档模板。 我想知道它是否在Python文档中占有一席之地。 这里有哪些既定的公约和/或官方指南? 例如,类似这样的内容太复杂而无法适应Python的思维方式,还是我应该尽量简洁一些? 而且,如果我有点过于详尽,我应该改用类似的东西(大多数文档都无法通过该方法打印)吗? 问题答案: 看一下reStructuredT

  • 问题内容: 我正在编写一些Java代码,以便使用Wikipedia在文本上实现NLP任务。如何使用JSoup提取Wikipedia文章的所有文本(例如,http://en.wikipedia.org/wiki/Boston中的所有文本)? 问题答案: 当然,您可以通过这种方式检索格式化的内容。如果您想要“原始”内容,则可以使用或使用call 过滤结果。

  • 这是我收到的错误: 请求的资源上不存在“< code > Access-Control-Allow-Origin ”标头。因此,不允许访问源“https://s.codepen.io”。如果不透明响应满足您的需要,请将请求的模式设置为' < code>no-cors ',以便在禁用cors的情况下获取资源。 我将模式设置为但仍然没有运气。

  • 问题内容: 我查看了请求文档,但似乎什么也找不到。如何仅请求标题,以便评估文件大小? 问题答案: 发送HEAD请求: HEAD请求就像GET请求一样,仅下载标头。请注意,由服务器来实际满足您的HEAD请求。某些服务器只会响应GET请求,因此您必须发送GET请求并仅关闭连接,而不下载主体。其他时候,服务器永远不会指定文件的总大小。

  • 我需要下载一些大文件( 据我所读,有两种联系。数据和控制通道,其中数据通道似乎工作正常(我可以完全下载文件),但控制通道同时超时。我还了解到ftplib(和其他python ftp库)不适合大文件,可能只支持1GB左右的文件。这里有一个与此主题类似的问题:如何通过ftp(带监控)下载python中的大文件 我当前的代码如下所示: 我可以使用它或其他支持大文件的库吗?