使用XPath从表中最左边的列获取href

2024-06-08 00:54:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从这里的表中提取href文本:https://en.wikipedia.org/wiki/List_of_first-person_shooters

这是桌子的顶部:

<table class="wikitable sortable" style="font-size: 85%; text-align: left;">
<tr style="background: #ececec">
<th>Title</th>
<th>Developer</th>
<th>Platform(s)</th>
<th>Release Date</th>
</tr>
<tr>
<th><i><a href="/wiki/007_Legends" title="007 Legends">007 Legends</a></i></th>
<td><a href="/wiki/Eurocom" title="Eurocom">Eurocom</a>, <a href="/wiki/Activision" title="Activision">Activision</a></td>
<td>PS3, X360, Wii U, WIN</td>
<td>2012-10-16</td>
</tr>
<tr>
<th><i><a href="/wiki/007:_Quantum_of_Solace" title="007: Quantum of Solace">007: Quantum of Solace</a></i></th>
<td><a href="/wiki/Treyarch" title="Treyarch">Treyarch</a>, <a href="/wiki/Beenox" title="Beenox">Beenox</a></td>
<td>DS, PS3, Wii, WIN, X360</td>
<td>2008-10-31</td>
</tr>
<tr>
<th><i><a href="/wiki/3D_Monster_Chase" title="3D Monster Chase">3D Monster Chase</a></i></th>
<td><a href="/w/index.php?title=Romik&amp;action=edit&amp;redlink=1" class="new" title="Romik (page does not exist)">Romik</a></td>
<td>AMSCPC, ZX</td>
<td>1985</td>
</tr>

下面的XPath查询从表中获取href文本,但我只需要每行的第一列。XPath是否可能,最好不使用计数器?我正在使用Python库lxml

^{pr2}$

检索:

['/wiki/007_Legends', '/wiki/Eurocom', '/wiki/Activision', '/wiki/007:_Quantum_of_Solace', '/wiki/Treyarch', '/wiki/Beenox', '/wiki/3D_Monster_Chase', '/w/index.php?title=Romik&action=edit&redlink=1', '/wiki/Ace_of_Spades_(video_game)', '/w/index.php?title=Ben_Aksoy&action=edit&redlink=1', '/wiki/Alcatraz:_Prison_Escape', '/wiki/Zombie_Studios', '/wiki/CodeRED:_Alien_Arena', '/w/index.php?title=COR_Entertainment&action=edit&redlink=1', '/wiki/FreeBSD', '/wiki/Alien_Breed_3D', '/wiki/Team17', '/wiki/Alien_Breed_3D_II:_The_Killing_Grounds', '/wiki/Team17', 

但是,我只想要每行的第一项


Tags: oftitlewikitrtdhrefquantummonster
2条回答

只有第一列使用<th><i>,所以请使用它

tree.xpath('//table[@class="wikitable sortable"]//th//a/@href')

或者

^{pr2}$

I only want the first column from each row

这个XPath

 //table[@class="wikitable sortable"]//tr/*[1]//a/@href

将只选择在每个tr的第一列中找到的a/@href

^{pr2}$

不管第一列是td还是th。在

如果您只对td条目感兴趣,那么可以将*替换为td

//table[@class="wikitable sortable"]//tr/td[1]//a/@href

然后使用以下值选择a/@href属性:

/wiki/Eurocom
/wiki/Activision
/wiki/Treyarch
/wiki/Beenox
/w/index.php?title=Romik&action=edit&redlink=1

相关问题 更多 >

    热门问题