报废:如何获取标记中的属性
问题描述:
我正在使用lxml和python通过页面进行报废。该页面的链接是HERE。我现在面临的呃逆是如何获取标签中的属性。例如,3颗金星在页面的顶部,他们有一个HTML报废:如何获取<abbr>标记中的属性
<abbr title="3" class="average rating large star3">★★★☆☆</abbr>
这里我要取的标题,让我知道很多明星是如何做到这个位置得到。
我已经尝试做了几件事情,包括这个:
response = urllib.urlopen('http://www.insiderpages.com/b/3721895833/central-kia-of-irving-irving').read()
mo = re.search(r'<div class="rating_box">.*?</div>', response)
div = html.fromstring(mo.group(0))
title = div.find("abbr").attrib["title"]
print title
但对我不起作用。帮助将不胜感激。
答
Don't use regex to extract data from html.你有lxml,使用它的力量(XPath)。
>>> import lxml.html as html
>>> page = html.parse("http://www.insiderpages.com/b/3721895833/central-kia-of-irving-irving")
>>> print page.xpath("//div[@class='rating_box']/abbr/@title")
['3']
答
您是否尝试过xpath?
In [38]: from lxml import etree
In [39]: import urllib2
In [40]: html = etree.fromstring(urllib2.urlopen('http://www.insiderpages.com/b/3721895833/central-kia-of-irving-irving').read(), parser)
In [41]: html.xpath('//abbr')[0].xpath('./@title')
Out[41]: ['3']
你的比较好。我不知道lxml本身可以获取页面。 – WooParadog 2012-04-13 06:53:28
Thanx!很优雅的解决方案 – 2012-04-13 06:55:37