如何在 html 上使用 lxml 获取属性值
How to get an attribute value with lxml on html
我有一些 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。从那里,我可以使用这个值直接进入海报页面,因为我知道 url 重定向模式来自
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/')
但是这个 returns 是一个空列表。
在这种情况下如何获取属性值?
paper_numbers = tree.xpath('//div[@onclick]/div/@id')
print(paper_numbers)
会给你
['maincard_9202']
它选择具有 onclick
属性的 div
中所有 div
的 id
属性...
我有一些 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。从那里,我可以使用这个值直接进入海报页面,因为我知道 url 重定向模式来自
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/')
但是这个 returns 是一个空列表。
在这种情况下如何获取属性值?
paper_numbers = tree.xpath('//div[@onclick]/div/@id')
print(paper_numbers)
会给你
['maincard_9202']
它选择具有 onclick
属性的 div
中所有 div
的 id
属性...