如何用Python寫一個抓取新浪財經網指定企業年報的指令碼?

來源:互聯網
上載者:User
題主會計學二專畢業設計論文DDL在即,做的是分析食品企業會計資訊與股價的實證課題,目前需要從新浪財經上收集100家食品企業近五年的財報,如果手動收集的話是根據證監會2014年4季度上市公司行業分類結果 上的上市公司股票代號輸到股票首頁_新浪財經 的搜尋方塊,然後再從所選公司的網頁(如康達爾(000048)股票股價,行情,新聞,財報資料 )上點選“公司年報”,下載近五年的年報資料。
所選企業是2014年4季度上市公司行業分類結果 上所有13、14、15大類,有100多家,全部手動收集的話工作量略大,想問下有沒有辦法用Python寫一個指令碼完成以上工作?(大學修過一門用python講的計算思維,算是有一點點python基礎吧)
感激不盡~

回複內容:

嗨~我來答題了~
雖然題主已經搞定了問題……
提問後一周已經搞定了,用了excel power query+yahoo finance api 等這周忙完畢業設計回來更新問題…還是非常感謝~!
就當練手了~問題的解決辦法有很多。利用現有的api挺方便。不過我還是按照題主原來的思路笨辦法寫寫試試。
老規矩邊做邊調邊寫~
#新手 很笨 大神求不噴 新手多交流
#start coding
第一步自然是搜集股票代號…用線上的PDF2DOC網站,然後把13、14、15三類的股票代號複製粘貼到一個文字文件裡。像這樣…
然後我們需要讓Python按行讀入文字文件裡的內容並存入一個列表。很簡單。然後我們需要讓Python按行讀入文字文件裡的內容並存入一個列表。很簡單。
f=open('stock_num.txt')stock = []for line in f.readlines():    #print(line,end = '')    line = line.replace('\n','')    stock.append(line)f.close()print(stock)
用selenium模組可以寫程式類比手動點擊按鈕的整個過程。
感覺就像寫按鍵精靈一樣。
就醬。scrapy配合chrome或者firefox分分鐘的事 推薦使用東方財富網抓資料,因為可以直接儲存為excel文檔,後期處理也相對方便,思路如下:
1.先得到需要的上市公司的股票代號和名字。這一步可以參考 @段曉晨的答案!
2.分析下載連結地址。以康達爾為例,年報地址http://soft-f9.eastmoney.com/soft/gp14.php?code=00004802 ,下載連結eastmoney.com 的頁面 ,連結末尾的8個數字前6個是股票代號,後兩位01代表上交所上市公司(股票代號60開頭)、02代表深交所上市公司。 讓後就可以用一個迴圈來下載所有的資料!
3.把下載下來的xml檔案轉化成xls檔案,代碼如下:
1). xml可能的中文編碼錯誤處理
def xml_Error_C(filename):    fp_xml=open(filename)    fp_x=''#中文亂碼改正    for i in range(os.path.getsize(filename)):        i+=1        a=fp_xml.read(1)        if a=='&':            fp_xml.seek(-1,1)            if fp_xml.read(6)==' ':                i+=5                continue            else:                fp_xml.seek(-5,1)        fp_x+=a    fp_xml=open(filename,'w+')    fp_xml.write(fp_x)    fp_xml.flush()    fp_xml.close()
用神箭手雲爬蟲吧,完全在雲端進行。編寫快速,而且內建資料匯出發布和組建圖表進行資料分析,大資料時代的利器啊( ̄▽ ̄)"用tushare,http://tushare.waditu.com 用scrapy寫一個爬蟲,爬資源嗖嗖的快!如果是想要下載“年報資料”而不是“年報”的話,用wind的excel外掛程式拉一下函數就行,想要什麼就有什麼…樓主念會計專業,說明學校肯定有商學院,有商學院就肯定有wind終端…去學院機房半個小時搞定…
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.