如何在html上使用lxml获取属性值

时间:2017-12-12 05:55:28

标签: python html lxml

我有一些HTML,我想使用Python解析lxml。页面上有许多元素,每个元素代表一张海报。我想抓住每张海报的ID,这样我就可以从海报的页面上抓取一条信息。目前海报的id存储在id属性中,所以我想使用lxml来获取该属性的值。

例如:

<div onclick="showDetail(9202)">               
    <div class="maincard narrower Poster" id="maincard_9202"> </div>
</div>

我想从id属性中获取“maincard_9202”,以便我可以使用正则表达式获取9202.从那里,我可以使用此值直接进入海报的页面,因为我知道该网址重定向模式来自

https://nips.cc/Conferences/2017/Schedule?type=Poster(当前页)到 https://nips.cc/Conferences/2017/Schedule?showEvent=9202(海报页)

我试图使用以下代码:

from lxml import html
import requests
page = requests.get('https://nips.cc/Conferences/2017/Schedule?type=Poster')
tree = html.fromstring(page.content)
paper_numbers = tree.xpath('//div[@onclick]/id/')

但这会返回一个空列表。

在这种情况下如何获取属性值?

1 个答案:

答案 0 :(得分:3)

paper_numbers = tree.xpath('//div[@onclick]/div/@id')
print(paper_numbers)

会给你

['maincard_9202']

它使用id属性选择div内所有divonclick属性...