python利用re,bs4,requests模塊獲取股票數(shù)據(jù)
今天閑來(lái)無(wú)聊無(wú)意間看到了百度股票,就想著用python爬一下數(shù)據(jù),于是就找到了東方財(cái)經(jīng)網(wǎng),結(jié)合這兩個(gè)網(wǎng)站,寫(xiě)了一個(gè)小爬蟲(chóng),數(shù)據(jù)保存在文件中,比較簡(jiǎn)單的示例,就當(dāng)做用來(lái)練習(xí)正則表達(dá)式和BeautifulSoupl了。
首先頁(yè)面分析,打開(kāi)東方財(cái)經(jīng)網(wǎng)股票列表頁(yè),
和百度股票詳情頁(yè) ,右鍵查看網(wǎng)頁(yè)源代碼,
網(wǎng)址后面的代碼就是股票代碼,所以打算先獲取股票代碼,然后獲取詳情,廢話(huà)少說(shuō),直接上代碼吧:
import re import requests from bs4 import BeautifulSoup #獲取html def getHtml(url): try: req=requests.get(url) req.raise_for_status() req.encoding=req.apparent_encoding return req.text except : print('getHtml失敗') #獲取股票代碼 def getStockList(lst,stockUrl): html=getHtml(stockUrl) soup=BeautifulSoup(html,'html.parser') a=soup.find_all('a') for i in a: try: href=i.attrs['href'] lst.append(re.findall(r'[s][hz]\d{6}',href)[0]) except: continue #獲取股票詳情 def getStockInfo(lst,stockUrl,fpath): count=0 for stock in lst: url=stockUrl+stock+'.html' html=getHtml(url) try: if html=='': continue infoDict={} soup=BeautifulSoup(html,'html.parser') stockInfo=soup.find('div',attrs={'class':'stock-bets'}) name=stockInfo.find_all(attrs={'class':'bets-name'})[0] infoDict.update({'股票名稱(chēng)':name.text.split()[0]}) keyList=stockInfo.find_all('dt') valueList=stockInfo.find_all('dd') for i in range(len(keyList)): key=keyList[i].text val=valueList[i].text infoDict[key]=val with open(fpath,'a',encoding='utf-8') as f: f.write(str(infoDict)+'\n') count+=1 print('\r當(dāng)前速度:{:.2f}%'.format(count*100/len(lst)),end='') except: count+=1 print('\r當(dāng)前速度e:{:.2f}%'.format(count*100/len(lst)),end='') continue def main(): stockListUrl='http://quote.eastmoney.com/stocklist.html' stockInfotUrl='https://gupiao.baidu.com/stock/' outPutFile='D:\python\shuju\stockInfo.txt' slist=[] getStockList(slist,stockListUrl) getStockInfo(slist,stockInfotUrl,outPutFile) main()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python實(shí)現(xiàn)監(jiān)控windows服務(wù)并自動(dòng)啟動(dòng)服務(wù)示例
這篇文章主要介紹了python實(shí)現(xiàn)監(jiān)控windows服務(wù)并自動(dòng)啟動(dòng)服務(wù)示例,需要的朋友可以參考下2014-04-04PyTorch模型轉(zhuǎn)TensorRT是怎么實(shí)現(xiàn)的?
今天給大家?guī)?lái)的是關(guān)于Python的相關(guān)知識(shí),文章圍繞著PyTorch模型轉(zhuǎn)TensorRT是怎么實(shí)現(xiàn)的展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06C++和python實(shí)現(xiàn)阿姆斯特朗數(shù)字查找實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于C++和python實(shí)現(xiàn)阿姆斯特朗數(shù)字查找的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12django ModelForm修改顯示縮略圖 imagefield類(lèi)型的實(shí)例
今天小編就為大家分享一篇django ModelForm修改顯示縮略圖 imagefield類(lèi)型的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07Python中Jupyter notebook快捷鍵總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于Python中Jupyter notebook快捷鍵總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-04-04詳解Python的Django框架中的模版相關(guān)知識(shí)
這篇文章主要介紹了Python的Django框架中的模版相關(guān)知識(shí),模版的存在大大簡(jiǎn)化了創(chuàng)作頁(yè)面時(shí)HTML的相關(guān)工作,需要的朋友可以參考下2015-07-07使用Python代碼進(jìn)行PowerPoint演示文稿的合并與拆分
多個(gè)PowerPoint演示文稿的處理可能會(huì)成為非常麻煩的工作,有時(shí)需要將多個(gè)演示文稿合并為一個(gè)演示文稿,從而不用在演示時(shí)重復(fù)打開(kāi)演示文稿,本文我們可以使用Python代碼來(lái)快速、準(zhǔn)確的執(zhí)行PowerPoint演示文稿的合并于拆分操作,需要的朋友可以參考下2024-03-03