Вы можете использовать api.php , чтобы получить исходный текст Википедии.Включает только актуальную статью.
Я написал этот для немецкой википедии, так что он работает с умлаутами.Некоторые специальные символы некоторых других языков не работают (русский работает, так что это могут быть некоторые азиатские языки).Это рабочий пример:
import urllib2
from BeautifulSoup import BeautifulStoneSoup
import xml.sax.saxutils
def load(lemma, language="en", format="xml"):
""" Get the Wikipedia Source Text (not the HTML source code)
format:xml,json, ...
language:en, de, ...
Returns None if page doesn't exist
"""
url = 'http://' + language + '.wikipedia.org/w/api.php' + \
'?action=query&format=' + format + \
'&prop=revisions&rvprop=content' + \
'&titles=' + lemma
request = urllib2.Request(url)
handle = urllib2.urlopen(request)
text = handle.read()
if format == 'xml':
soup = BeautifulStoneSoup(text)
rev = soup.rev
if rev != None:
text = unicode(rev.contents[0])
text = xml.sax.saxutils.unescape(text)
else:
return None
return text
print load("Coca-Cola")
Если вы хотите получить реальный исходный код, вам нужно изменить URL и часть с BeautifulStoneSoup.
BeautifulStoneSoup анализирует XML, BeautifulSoup анализирует HTML.Оба являются частью пакета BeautifulSoup .