我正在抓取一个网站,为了获得我使用pd.read_html
的表格。
我得到节点这样做:
table=WebDriverWait(browser,10).until(EC.presence_of_element_located((
By.XPATH,'//tbody[ancestor::div[contains(@id,"cornerOddsDiv")]]')))
newt=pd.read_html(table.get_attribute('outerHTML'))
返回:
ValueError:找不到表格
为表节点提供此输出:
table.get_attribute('outerHTML')
>>'<tbody><tr><th colspan="10" align="center" class="bg1">365 Corner Odds</th></tr><tr bgcolor="#FCEAAB"><td colspan="10" align="center"><strong>Over/Under</strong></td></tr><tr onclick="goCorner(1510721)" style="cursor:pointer;" align="center" class="bg1" id="trCornerTotal" odds="1.19,0.25,0.72"><td width="14%" bgcolor="#EBF2F8">early</td><td width="10%" class="bg2">1 </td><td width="10%" class="bg2">10.5</td><td width="10%" class="bg2">0.8</td><td width="6%" class="bg2"><a href="http://data.nowgoal.com/history/corner.aspx?id=1510721&companyid=8" target="_blank">detail</a></td><td width="14%" bgcolor="#EBF2F8">0.25</td><td width="10%" class="bg2">1</td><td width="10%" class="bg2">0.72</td><td width="10%" class="bg2">0.8</td><td width="6%" class="bg2"><a href="http://data.nowgoal.com/history/corner.aspx?id=1510721&companyid=8" target="_blank">detail</a></td></tr></tbody>'
为什么不起作用?我对其他表采用了相同的程序,但确实有效。
答案 0 :(得分:0)
我终于找到了答案。该节点具有如下结构
<div>
<div>
<table>
<tbody>
<tr>..</tr>
<tr>..</tr>
...
</tbody>
Etc
关键是,由于我不知道的原因而不是传递tbody的节点,我必须传递表节点,然后在使用tbody时它的工作方式和其他节点一样好。
所以,它将是:
table=WebDriverWait(browser,10).until(EC.presence_of_element_located((
By.XPATH,'//table[contains(@class,"bhTable") and
ancestor::div[contains(@id,"cornerOddsDiv")]]')))
并返回所需的输出