微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何解析特定的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\'}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。