【发布时间】:2026-01-29 11:30:01
【问题描述】:
根据@Jens Timmerman 在这篇文章中的回答:Extract the first paragraph from a Wikipedia article (Python)
我这样做了:
import urllib2
def getPage(url):
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')] #wikipedia needs this
resource = opener.open("http://en.wikipedia.org/wiki/" + url)
data = resource.read()
resource.close()
return data
print getPage('Steve_Jobs')
从技术上讲,它应该可以正常运行并给我页面的来源。但这是我得到的:
任何帮助将不胜感激..
【问题讨论】:
-
如果可以使用他们的API,为什么还要爬*?
-
@NullUserException,很抱歉,但我讨厌像你这样的 cmets。 OP 想使用
python来实现,我们能否只专注于帮助他实现这一目标而不是建议替代方法? -
@l19: NullUserException 完全正确; Wikipedia API 可以从 Python 中使用(实际上,这是最常见的场景之一),因为它们只是简单的 HTTP 请求,就像我们现在讨论的那样。不同之处在于它们通常更灵活,并且返回的数据通常是机器可读的格式,这对于我们的脚本和来说通常是一个很大的优势,不需要浪费时间呈现 MediaWiki 标记。
-
@l19 API 专门为此目的而设计,因此您不必抓取网站。正如 Matteo 所说,这对*和你都有好处。实际上,一些网站明确禁止您抓取它们,同时允许您通过 API 访问。我不认为*是其中之一,但他们的robots.txt 表明他们并不是很喜欢爬行。如果您正在访问某人的应用程序,请尊重开发人员的意愿,并通过 API 按他们希望的方式进行操作。
标签: python