2017-09-20 17 views
0

試圖找出如何從該網頁提取數據並將其放入.csv中。文件:https://www.basketball-reference.com/draft/BAA_1947.htmlPython - 找出HTML中屬性數據的*路徑*

每一行的表結構看起來像下面的下面的圖片:

<tr data-row="12"> 
    <th scope="row" class="right " data-stat="ranker" >11</th> 
     <td class="left " data-stat="player" csk="Bolyard,Robert" >Robert Bolyard</td> 
     <td class="left " data-stat="college_name" csk="University of Toledo" ><a href="/friv/draft.fcgi?college=toledo">University of Toledo</a></td> 
     <td class="right " data-stat="seasons" >12</td> 
</tr> 

我想知道的XPath值搶文本。

到目前爲止,我有以下幾點:

# Xpath 
player = data.xpath("//td/span[@data-stat='player']/text()") 
college = data.xpath("//td/span[@data-stat='college_name']/a/text()") 
seasons = data.xpath("//td/span[@data-stat='seasons']/text()") 

問題是它不返回任何值到任何列。 Xpath語句可能有什麼問題?

回答

0

您正在尋找位於td內部的span,但沒有一個。

如果刪除的XPath的一部分,將工作:

player = data.xpath("//td[@data-stat='player']/text()") 
college = data.xpath("//td[@data-stat='college_name']/a/text()") 
seasons = data.xpath("//td[@data-stat='seasons']/text()") 
+0

謝謝!此代碼按預期工作。請問爲什麼[@data - * = value]在td後? – Leggerless

+0

數據屬性屬於td。所以// td [@attr]表示找到一個td,即一個孫子元素,其屬性爲'attr' – Bricky