python lxml.html,立即抓取所有内容

时间:2014-07-09 03:28:05

标签: python lxml.html

使用lxml.html,我能够使用数据pid fromstring(source).xpath('/html/body/article/section/div[1]/div[2]/p[2]')[0].get('data-pid')

但是,它只返回其中一个(在本例中为4559733570)。我记得能够立刻抓住所有这些,但我不记得如何。有人能指出我正确的方向吗?

HTML代码如下所示:

http://i.imgur.com/hn0Jqyi.png

2 个答案:

答案 0 :(得分:0)

xpath,直接返回所有值

假设您关心所有data-pid元素中的属性p

>>> fromstring(source).xpath("//p/@data-pi")

应该返回你需要的东西。

答案 1 :(得分:0)

从您的png和xpath查询中,您感兴趣的所有<p>元素似乎都嵌套在同一个<div>中。 xpath查询/html/body/article/section/div[1]/div[2]/p[2]将仅返回所选div(<p>)中的第二个[2]元素。如果您想要div中的所有段落,请使用/html/body/article/section/div[1]/div[2]/p

[ p.get("data-pid") for p in fromstring(source).xpath('/html/body/article/section/div[1]/div[2]/p') ]