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

我有一个包含多行表格的网页。用户会给我一个数字 (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>


UYOU
浏览 244回答 2
2回答

牧羊人nacy

使用以下代码:userValue='15308'all_td_th_of_row = driver.find_elements_by_xpath("//td[normalize-space()='" + userValue + "']//following-sibling::td|th")i = 0while i<len(all_td_th_of_row) :&nbsp;&nbsp; &nbsp; print(all_td_th_of_row[i].text)&nbsp; &nbsp; i=i+1

喵喵时光机

我一直觉得很漂亮的东西,使用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&nbsp; &nbsp;101&nbsp; </td><td>A </td><td align="CENTER">LC</td><td>SOCIAL NETWORKING&nbsp; &nbsp;</td><td align="CENTER"> 150</td><td align="CENTER"> 150</td><td align="CENTER"> 250</td><th align="CENTER">&nbsp; 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&nbsp; &nbsp;101&nbsp; </td><td>AA</td><td align="CENTER">LB</td><td>SOCIAL NETWORKING&nbsp; &nbsp;</td><td align="CENTER">&nbsp; 25</td><td align="CENTER">&nbsp; 25</td><td align="CENTER">&nbsp; 26</td><th align="CENTER" style="">&nbsp; 2</th><td align="CENTER">&nbsp; 21</td><td></td></tr>'''from bs4 import BeautifulSoupsoup = BeautifulSoup(line, 'html.parser')trElems = soup.find_all('tr')toFind = '15308'for tr in trElems:&nbsp; &nbsp; val = tr.select('td a')[0].text&nbsp; &nbsp; if toFind == val:&nbsp; &nbsp; &nbsp; &nbsp; xpathTh = tr.find_all('td')[7]&nbsp; &nbsp; &nbsp; &nbsp; print("For the value: {}, The result is {}".format(toFind, xpathTh.find_next('th').text.strip()))输出:For the value: 15308, The result is 0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python