Pandas read_html错过了几行的表

时间:2018-06-14 19:42:11

标签: python-3.x pandas html-table

我正在抓取一个网站,为了获得我使用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&amp;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&amp;companyid=8" target="_blank">detail</a></td></tr></tbody>'

为什么不起作用?我对其他表采用了相同的程序,但确实有效。

1 个答案:

答案 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")]]')))

并返回所需的输出