报废:如何获取标记中的属性

问题描述:

我正在使用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'] 
+2

你的比较好。我不知道lxml本身可以获取页面。 – WooParadog 2012-04-13 06:53:28

+0

Thanx!很优雅的解决方案 – 2012-04-13 06:55:37

您是否尝试过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']