2016-12-15 34 views
-1

我想從使用python的雅虎財務中提取財務數據。 下面有一個指向圖片的鏈接,用來顯示我想要檢索的數據。它具有數據表的組織結構,但我不知道圖片中顯示的內容從哪裏開始。從雅虎提取數字財務報表,願意通過Pay Pal支付一些費用

這是我試圖從雅虎財經提取的數字的代碼位置圖像,其中包含表名和td代碼。

enter image description here

我意識到,我必須以某種方式使用TD行情發現,我需要提取但是林不知道什麼是基本命令,我需要實現的數字。

這是一個link到數據表的一個例子,我試圖刮

回答

1

你刮掉該頁面由JavaScript,請求渲染和urllib的無法處理JavaScript。我建議你使用硒和BeautifulSoup來提取數據。 這是當JavaScript被禁用: enter image description here

你想要的數據是在這個網址:

http://financials.morningstar.com/ajax/ReportProcess4HtmlAjax.html?&t=XNAS:AAPL&region=usa&culture=en-US&ops=clear&cur=&reportType=is&period=12&dataType=A&order=asc&columnYear=5&curYearPart=1st5year&rounding=3&view=raw&r=378724&callback=jsonp1482077238548&_=1482077239651 

我把它放在BS4,你可以通過你自己得到的數據:

import requests, bs4, json 

r = requests.get('http://financials.morningstar.com/ajax/ReportProcess4HtmlAjax.html?&t=XNAS:AAPL&region=usa&culture=en-US&ops=clear&cur=&reportType=is&period=12&dataType=A&order=asc&columnYear=5&curYearPart=1st5year&rounding=3&view=raw&r=378724&callback=jsonp1482077238548&_=1482077239651') 

js = r.text.strip('jsonp1482077238548()') 
html_str = json.loads(js)['result'] 
soup = bs4.BeautifulSoup(html_str, 'lxml') 

出來:

<html> 
<body> 
    <div id="baseline" style="display:none"> 
    <div> 
    156508000000 
    </div> 
    <div> 
    170910000000 
    </div> 
    <div> 
    182795000000 
    </div> 
    <div> 
    233715000000 
    </div> 
    <div> 
    215639000000 
    </div> 
    <div> 
    215639000000 
    </div> 
    </div> 
    <div class="left "> 
    <div class="r_xcmenu rf_table_left"> 
    <div class="rf_header "> 
    <div class="lbl " currency="USD" fiscalyearend="September" fyenumber="9" id="unitsAndFiscalYear"> 
    </div> 
    </div> 
    <div class="rf_crow1" id="label_i1" style="_height:16px; _float:none;"> 
    <div class="lbl"> 
     Revenue 
    </div> 
    <div class="chart_contain_free" id="chart_i1"> 
     <div class="chart_icon"> 
     </div> 
    </div> 
    </div> 
+1

我想可能會有一些複選框檢查當發佈beautifulsoup問題時會說_ _ x這樣的問題,我明白請求+ bs不能用於刮取用javascript動態加載的元素,並且我確信情況並非如此。 PS:如果是這樣的話,我會首先使用硒._ –

+0

發佈html代碼和您想要的數據表單,以便我可以爲您編寫代碼 –

+0

是不是在頁面的檢查頁面選項中找到的html代碼?如果你可以幫我刮我需要的數字我願意付錢給你一些錢通過付費朋友 –