【发布时间】:2012-02-13 09:31:04
【问题描述】:
我编写了一个非常简单的代码来获取urbandictionary.com 上任何术语的第一个结果。我首先写了一个简单的东西来看看他们的代码是如何格式化的。
def parseudtest(searchurl):
url = 'http://www.urbandictionary.com/define.php?term=%s' %searchurl
url_info = urllib.urlopen(url)
for lines in url_info:
print lines
为了测试,我搜索了'cats',并将其用作变量searchurl。我收到的输出当然是一个巨大的页面,但这是我关心的部分:
<meta content='He set us up the bomb. Also took all our base.' name='Description' />
<meta content='He set us up the bomb. Also took all our base.' property='og:description' />
<meta content='cats' property='og:title' />
<meta content="http://static3.urbandictionary.com/rel-1e0b481/images/og_image.png" property="og:image" />
<meta content='Urban Dictionary' property='og:site_name' />
如您所见,“元内容”元素第一次出现在网站上时,它是搜索词的第一个定义。所以我写了这段代码来检索它:
def parseud(searchurl):
url = 'http://www.urbandictionary.com/define.php?term=%s' %searchurl
url_info = urllib.urlopen(url)
if (url_info):
xmldoc = minidom.parse(url_info)
if (xmldoc):
definition = xmldoc.getElementsByTagName('meta content')[0].firstChild.data
print definition
由于某种原因,解析似乎无法正常工作,并且每次都会遇到错误。这尤其令人困惑,因为该站点似乎使用与我已成功从中检索特定数据的其他站点基本相同的格式。如果有人能帮我弄清楚我在这里搞砸了什么,将不胜感激。
【问题讨论】:
标签: python xml-parsing