为了账号安全,请及时绑定邮箱和手机立即绑定

如何在没有标识符的表中查找值?

如何在没有标识符的表中查找值?

UYOU 2021-12-17 16:06:20
我有一个包含多行表格的网页。用户会给我一个数字 (15308),它可以在带有第一个<td>标签的顶行找到,这是我将拥有的唯一信息。我希望能够使用这个数字来查找<th></th>标签之间的数据(更具体地说是 0),但仅适用于表格行。例如,我附加了两个表行,我想要<th>使用数字 15308 的<th>数据,而不是第一个中包含数字 15309 的表行中的数据<td>。任何帮助表示赞赏!期望输出:0<tr><td><a href="http://sdb.admin.uw.edu/timeschd/UWNetID/sln.asp?QTRYR=SPR+2019&amp;SLN=15308">15308</a></td><td nowrap="">INFO   101  </td><td>A </td><td align="CENTER">LC</td><td>SOCIAL NETWORKING   </td><td align="CENTER"> 150</td><td align="CENTER"> 150</td><td align="CENTER"> 250</td><th align="CENTER">  0</th><td align="CENTER"> 229</td><td></td></tr><tr><td><a href="http://sdb.admin.uw.edu/timeschd/UWNetID/sln.asp?QTRYR=SPR+2019&amp;SLN=15309">15309</a></td><td nowrap="">INFO   101  </td><td>AA</td><td align="CENTER">LB</td><td>SOCIAL NETWORKING   </td><td align="CENTER">  25</td><td align="CENTER">  25</td><td align="CENTER">  26</td><th align="CENTER" style="">  2</th><td align="CENTER">  21</td><td></td></tr>
查看完整描述

2 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

使用以下代码:


userValue='15308'

all_td_th_of_row = driver.find_elements_by_xpath("//td[normalize-space()='" + userValue + "']//following-sibling::td|th")

i = 0

while i<len(all_td_th_of_row) : 

    print(all_td_th_of_row[i].text)

    i=i+1


查看完整回答
反对 回复 2021-12-17
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

我一直觉得很漂亮的东西,使用beauitfulsoup

line = '''<tr>

<td><a href="http://sdb.admin.uw.edu/timeschd/UWNetID/sln.asp?QTRYR=SPR+2019&amp;SLN=15308">15308</a></td>

<td nowrap="">INFO   101  </td>

<td>A </td>

<td align="CENTER">LC</td>

<td>SOCIAL NETWORKING   </td>

<td align="CENTER"> 150</td>

<td align="CENTER"> 150</td>

<td align="CENTER"> 250</td>

<th align="CENTER">  0</th><td align="CENTER"> 229</td>

<td></td>

</tr>

<tr><td><a href="http://sdb.admin.uw.edu/timeschd/UWNetID/sln.asp?QTRYR=SPR+2019&amp;SLN=15309">15309</a></td>

<td nowrap="">INFO   101  </td>

<td>AA</td>

<td align="CENTER">LB</td>

<td>SOCIAL NETWORKING   </td>

<td align="CENTER">  25</td>

<td align="CENTER">  25</td>

<td align="CENTER">  26</td>

<th align="CENTER" style="">  2</th><td align="CENTER">  21</td>

<td></td>

</tr>'''


from bs4 import BeautifulSoup


soup = BeautifulSoup(line, 'html.parser')


trElems = soup.find_all('tr')

toFind = '15308'


for tr in trElems:

    val = tr.select('td a')[0].text

    if toFind == val:

        xpathTh = tr.find_all('td')[7]

        print("For the value: {}, The result is {}".format(toFind, xpathTh.find_next('th').text.strip()))

输出:


For the value: 15308, The result is 0


查看完整回答
反对 回复 2021-12-17
  • 2 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信