2017-07-23 79 views
0

剛剛開始學習python。整個週末花了這個項目,但進展很糟糕。希望能得到社區的一些指導。Python - 從頁面中的特定表中提取數據

我的教程的一部分需要我從谷歌金融頁面提取數據。 https://www.google.com/finance。但只有部門總結表。然後將它們組織成一個JSON轉儲。

我到目前爲止的問題是:

1)如何提取僅從部門彙總表中的數據?我可以find_all使用,但結果返回包括其他表以及。 2)我如何獲得各行業的變化:(能源:0.99%,基礎材料:0.31%,工業:0.17%)。沒有可以使用的唯一標籤。唯一的字符,這些數字都低於頁面一樣的部門名稱

+0

給我們一個合適的URL。 – MishaVacic

回答

0

展望(使用查看源文件或瀏覽器的開發者工具),我們知道的幾件事情:

  • 該部門彙總表是div標籤中的唯一一個id=secperf(可能是「扇區性能」的縮寫)。
  • 對於除第一行之外的每一行,從左邊開始的第一個單元格包含扇區名稱;第二個從左側包含更改百分比。
  • 其他單元格可能包含條形圖。條形圖也恰好是表格,但我們想忽略它們,所以我們不應該將它們遞歸到它們中。

有很多方法可以解決這個問題。一種方法如下:

def sector_summary(document): 
    table = document.find(id='secperf').find('table') 
    rows = table.find_all('tr', recursive=False) 

    for row in rows[1:]: 
     cells = row.find_all('td') 

     sector = cells[0].get_text().strip() 
     change = cells[1].get_text().strip() 

     yield (sector, change) 

print(dict(sector_summary(my_document))) 
+0

謝謝你,你的作品像魔術一樣! – David

相關問題