如何解析特定的Wiki页面并将其自动化?

| 我试图制作一个Web应用程序,该应用程序需要解析一个特定的Wikipedia页面并提取一些以表格式存储在页面上的信息。然后,提取的数据将需要存储到数据库中。 我以前真的没有做过这样的事情。我应该使用哪种脚本语言来做到这一点?我一直在阅读一些内容,看起来Python(使用urllib2和BeautifulSoup)应该可以完成这项工作,但这是解决问题的最好方法。 我知道我也可以使用WikiMedia api,但是对于一般的解析问题,使用python是个好主意吗? 维基百科页面上的表格数据也可能会更改,因此我需要每天进行解析。如何为此自动执行脚本?在没有外部工具(如svn)的情况下进行版本控制的任何想法,以便在需要时可以轻松还原更新吗?     
已邀请:
  我应该使用哪种脚本语言来做到这一点? 就像您标记了问题一样,Python将会执行。   看起来Python(使用urllib2和BeautifulSoup)应该可以完成这项工作,但这是解决问题的最佳方法。 这是可行的。我个人使用
lxml.etree
。另一种方法是以原始格式获取页面,然后您需要执行其他解析任务。   我知道我也可以使用WikiMedia api,但是对于一般的解析问题,使用python是个好主意吗? 这似乎是一个陈述和一个不相关的争论性问题。从主观上讲,如果我要解决的是您要问的问题,我将使用python。   维基百科页面上的表格数据也可能会更改,因此我需要每天进行解析。如何为此自动执行脚本? Unix cron作业。   在没有外部工具(如svn)的情况下进行版本控制的任何想法,以便在需要时可以轻松还原更新吗? Subversion存储库可以与您编写的脚本在同一台计算机上运行。或者,您可以使用分布式版本控制系统,例如
git
。 奇怪的是,您没有提到您打算使用此数据做什么。     
是的,Python是Web抓取的绝佳选择。 维基百科经常更新内容,但结构很少。如果表具有唯一性(如ID),那么您可以放心地提取数据。 这是一个使用此库抓取维基百科的简单示例:
from webscraping import common, download, xpath
html = download.Download().fetch(\'http://en.wikipedia.org/wiki/Stackoverflow\')
attributes = {}
for tr in xpath.search(html, \'//table//tr\'):
    th = xpath.get(tr, \'/th\')
    if th:
        td = xpath.get(tr, \'/td\')
        attributes[common.clean(th)] = common.clean(td)
print attributes
这是输出:
{\'Commercial?\': \'Yes\', \'Available language(s)\': \'English\', \'URL\': \'stackoverflow.com\', \'Current status\': \'Online\', \'Created by\': \'Joel Spolsky and Jeff Atwood\', \'Registration\': \'Optional; Uses OpenID\', \'Owner\': \'Stack Exchange, Inc.\', \'Alexa rank\': \'160[1]\', \'Type of site\': \'Question & Answer\', \'Launched\': \'August 2008\'}
    

要回复问题请先登录注册