我必须从html中的表中的td
元素中获取Text,如下所示:
<table id="gvrslt" >
<tbody><tr style="font-size:10pt;">
<th scope="col">Sem</th><th scope="col" style="font-size:X-Small;">Total Obtained Marks</th><th scope="col" style="font-size:X-Small;">Max Total Marks</th><th scope="col">Result</th>
</tr>
<tr>
<td align="center">VI</td>
<td align="center">458</td>
<td align="center">550</td>
<td align="center">PASSED</td>
</tr>
</tbody></table>
我想从表格中抓取458
,其中包含更多此类td
元素。问题是在进入结果之前&#39;页面和获取上述HTML,我必须输入一些凭据,然后显示结果页面右键单击禁用。现在我可以得到结果的来源&#39;页面通过driver.page_source
,但当我尝试通过webdriver查找table
元素时,它会搜索我输入凭据的页面,而不是实际结果&#39;页。有没有办法搜索driver.page_source
table
和td
元素
这是我的代码:
html=driver.page_source
soup = BeautifulSoup(html)
table=soup.find_all('table',id='gvrslt')
print(table)
答案 0 :(得分:1)
如果您想直接获取文本,可以使用css定位器直接转到第二个td
,而不是使用该表。
table[id='gvrslt'] td:nth-of-type(2)
nth-of-type
为您提供第二个td
元素
答案 1 :(得分:0)
在这种情况下尝试使用Xpath:
//table[@id='gvrslt']//td[index]
使用索引的td
答案 2 :(得分:0)
我不熟悉使用python的selenium。你尝试的是使用xpath找到值。
下面的C#是代码。看看它是否可以以任何可能的方式解决你。
IWebElement tdCell = driver.FindElement(By.XPath("//table[@id='']/tbody/tr[2]/td[2]"));
string valueOfTd = tdCell.Text;