如何识别div中id的名称?

时间:2015-10-02 13:51:10

标签: python xpath web-scraping

我正在尝试编写一个程序来识别div中的id并返回id的名称。

<div id="page0" class="subpage">
      <h2 id="RM10129"> Cold Startes </h2>
        <div id="RM10129" class="menubox"></div>
        <div id="RM10129" class="menubox"></div>
      <h2 id="RM10130"> Main </h2>
        <div id="RM10130" class="menubox"></div>
        <div id="RM10130" class="menubox"></div>

我希望我的程序返回ID“RM10129”和“RM10130”。用xpath可以吗?

3 个答案:

答案 0 :(得分:1)

您可以使用starts-with()检查id是否以RM开头:

//div[@id='page0']/div[starts-with(@id, 'RM') and @class = 'menubox']/@id

答案 1 :(得分:0)

您可以将xpath用作lxml lib的一部分:

import lxml.html

ttt = """<div id="page0" class="subpage">
      <h2 id="RM10129"> Cold Startes </h2>
        <div id="RM10129" class="menubox"></div>
        <div id="RM10129" class="menubox"></div>
      <h2 id="RM10130"> Main </h2>
        <div id="RM10130" class="menubox"></div>
        <div id="RM10130" class="menubox"></div>"""


page = lxml.html.fromstring(ttt)

print page.xpath('.//div[@class="menubox"]/@id')

继续进一步验证。

答案 2 :(得分:0)

此xpath将返回ID为page0的DIV内的所有DIV ID。

//div[@id="page0"]/div/@id