導航:首頁 > 數據行情 > python利用網址下載股票數據

python利用網址下載股票數據

發布時間:2023-10-29 00:15:12

『壹』 如何用python 爬蟲抓取金融數據

獲取數據是數據分析中必不可少的一部分,而網路爬蟲是是獲取數據的一個重要渠道之一。鑒於此,我拾起了Python這把利器,開啟了網路爬蟲之路。

本篇使用的版本為python3.5,意在抓取證券之星上當天所有A股數據。程序主要分為三個部分:網頁源碼的獲取、所需內容的提取、所得結果的整理。

一、網頁源碼的獲取

很多人喜歡用python爬蟲的原因之一就是它容易上手。只需以下幾行代碼既可抓取大部分網頁的源碼。

為了減少干擾,我先用正則表達式從整個頁面源碼中匹配出以上的主體部分,然後從主體部分中匹配出每隻股票的信息。代碼如下。

pattern=re.compile('<tbody[sS]*</tbody>')
body=re.findall(pattern,str(content)) #匹配<tbody和</tbody>之間的所有代碼pattern=re.compile('>(.*?)<')
stock_page=re.findall(pattern,body[0]) #匹配>和<之間的所有信息

其中compile方法為編譯匹配模式,findall方法用此匹配模式去匹配出所需信息,並以列表的方式返回。正則表達式的語法還挺多的,下面我只羅列所用到符號的含義。

語法 說明

. 匹配任意除換行符「 」外的字元

* 匹配前一個字元0次或無限次

? 匹配前一個字元0次或一次

s 空白字元:[<空格> fv]

S 非空白字元:[^s]

[...] 字元集,對應的位置可以是字元集中任意字元

(...) 被括起來的表達式將作為分組,裡面一般為我們所需提取的內容

正則表達式的語法挺多的,也許有大牛隻要一句正則表達式就可提取我想提取的內容。在提取股票主體部分代碼時發現有人用xpath表達式提取顯得更簡潔一些,看來頁面解析也有很長的一段路要走。

三、所得結果的整理

通過非貪婪模式(.*?)匹配>和<之間的所有數據,會匹配出一些空白字元出來,所以我們採用如下代碼把空白字元移除。

stock_last=stock_total[:] #stock_total:匹配出的股票數據for data in stock_total: #stock_last:整理後的股票數據
if data=='':
stock_last.remove('')

最後,我們可以列印幾列數據看下效果,代碼如下

print('代碼',' ','簡稱',' ',' ','最新價',' ','漲跌幅',' ','漲跌額',' ','5分鍾漲幅')for i in range(0,len(stock_last),13): #網頁總共有13列數據
print(stock_last[i],' ',stock_last[i+1],' ',' ',stock_last[i+2],' ',' ',stock_last[i+3],' ',' ',stock_last[i+4],' ',' ',stock_last[i+5])

『貳』 python如何獲得股票實時交易數據

使用easyquotation這個庫。(不用重復造輪子了)
github地址是:
https://github.com/shidenggui/easyquotation

『叄』 炒股軟體的實時數據是怎麼獲取的

如果你只是需要進行實時選股,則可以採用通達信、大智慧、同花順等看盤軟體。通達信、大智慧等軟體中有一個「鷹眼盯盤」的功能(各家叫法不同,但意思一樣的),結合自己在這些軟體中編寫的自編公式、指標,可實現實時的的股票監控。

如果你需要的是實時獲取股票數據,則有專門的股票實時行情API介面,例如微盛的股票實時API介面,通過這樣的介面,編程即可取得實時的股票數據。

『肆』 tushare的介面怎麼樣使用

一、安裝TuShare

方式1:pip install tushare

方式2:訪問https://pypi.python.org/pypi/tushare/下載安裝

方式3:將源代碼下載到本地python setup.py install

二、升級TuShare

1、先查看本地與線上的版本版本號:

pip search tushare

2、升級TuShare:

pip install tushare --upgrade

確認安裝成功

import tushare as ts
print ts.__version__
import tushare as ts
df = ts.get_hist_data(『600848』)
ts.get_hist_data(『600848』,ktype='W『) #獲取周k線數據
ts.get_hist_data('600848』,ktype='M『) #獲取月k線數據
ts.get_hist_data('600848』,ktype='5『) #獲取5分鍾k線數據
ts.get_hist_data('600848』,ktype='15『) #獲取15分鍾k線數據
ts.get_hist_data('600848』,ktype='30『) #獲取30分鍾k線數據
ts.get_hist_data('600848』,ktype='60『) #獲取60分鍾k線數據
ts.get_hist_data('sh』)#獲取上證指數k線數據,其它參數與個股一致,下同
ts.get_hist_data(『sz』)#獲取深圳成指k線數據 ts.get_hist_data(『hs300』)#獲取滬深300指數k線數據
ts.get_hist_data(『sz50』)#獲取上證50指數k線數據
ts.get_hist_data(『zxb』)#獲取中小板指數k線數據
ts.get_hist_data(『cyb』)#獲取創業板指數k線數據
Python財經數據介麵包TuShare的使用
獲取歷史分筆數據
df = ts.get_tick_data(『000756','2015-03-27』)
df.head(10)
Python財經數據介麵包TuShare的使用
獲取實時分筆數據
df = ts.get_realtime_quotes(『000581』)
print df[['code','name','price','bid','ask','volume','amount','time']]
返回值說明:
0:name,股票名字
1:open,今日開盤價
2:pre_close,昨日收盤價
3:price,當前價格
4:high,今日最高價
5:low,今日最低價
6:bid,競買價,即「買一」報價
7:ask,競賣價,即「賣一」報價
8:volumn,成交量 maybe you need do volumn/100
9:amount,成交金額(元 CNY)
10:b1_v,委買一(筆數 bid volume)
11:b1_p,委買一(價格 bid price)
12:b2_v,「買二」
13:b2_p,「買二」
14:b3_v,「買三」
15:b3_p,「買三」
16:b4_v,「買四」
17:b4_p,「買四」
18:b5_v,「買五」
19:b5_p,「買五」
20:a1_v,委賣一(筆數 ask volume)
21:a1_p,委賣一(價格 ask price)

30:date,日期
31:time,時間

『伍』 如何使用python 抓取雪球網頁

現在關注一個組合,就會有持倉變動的提示了。不過我覺得這事情挺有意思的。比如可以把很多持倉的數據都抓下來,做一些綜合的分析,看看現在網站上被持有最多的股票是哪一支,某一天被調入最多的又是哪一支之類。
於是我決定來抓抓看,順便藉此說說我通常用程序做自動抓取的過程。
Step.1 分析頁面
要抓一個網頁,首先自然是要「研究」這個網頁。通常我會用兩種方式:
一個是 Chrome 的 Developer Tools。通過它裡面的 Network 功能可以看到頁面發出的所有網路請求,而大多數數據請求都會在 XHR 標簽下。點擊某一個請求,可以看到其具體信息,以及伺服器的返回結果。很多網站在對於某些數據會有專門的請求介面,返回一組 json 或者 XML 格式的數據,供前台處理後顯示。

另一個就是直接查看網頁源代碼。通常瀏覽器的右鍵菜單里都有這個功能。從頁面的 HTML 源碼里直接尋找你要的數據,分析它格式,為抓取做准備。
對於雪球上的一個組合頁面 粗略地看了一下它發出的請求,並沒有如預想那樣直接找到某個數據介面。看源代碼,發現有這樣一段:
SNB.cubeInfo = {"id":10289,"name":"誓把老刀挑下位","symbol":"ZH010389" ...此處略過三千字... "created_date":"2014.11.25"}
SNB.cubePieData = [{"name":"汽車","weight":100,"color":"#537299"}];

cubeInfo 是一個 json 格式的數據,看上去就是我們需要的內容。一般我會找個格式化 json 的網站把數據復制進去方便查看。

這應該就是組合的持倉數據。那麼接下來,一切似乎都簡單了。只要直接發送網頁請求,然後把其中 cubeInfo 這段文字取出,按 json 讀出數據,就完成了抓取。甚至不用動用什麼 BeautifulSoup、正則表達式。
Step.2 獲取頁面
分析完畢,開抓。
直接 urllib.urlopen 向目標網頁發送請求,讀出網頁。結果,失敗了……
看了下返回結果:
403 Forbidden
You don't have permission to access the URL on this server. Sorry for the inconvenience.

被拒了,所以這種赤裸裸地請求是不行的。沒關系,那就稍微包裝一下:
send_headers = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Connection':'keep-alive',
'Host':'xueqiu.com',
'Cookie':r'xxxxxx',
}
req = urllib2.Request(url, headers=send_headers)
resp = urllib2.urlopen(req)
html = resp.read()

header 數據都可以從 Developer Tools 里拿到。這次順利抓到頁面內容。
一般網站或多或少都會對請求來源做一些阻攔,通過加 header 可以搞定大部分情況。
Step.3 提取數據
因為這個數據比較明顯,直接用通過一些字元串查找和截取操作就可以取出來。
pos_start = html.find('SNB.cubeInfo = ') + len('SNB.cubeInfo = ')
pos_end = html.find('SNB.cubePieData')
data = html[pos_start:pos_end]
dic = json.loads(data)

dic 就是一個包含數據的字典對象。之後想干什麼就隨便你了。
對於復雜一點的情況,可以通過 BeautifulSoup 來定位 html 標簽。再不好辦的,就用正則表達式,基本都可以解決掉。
Step.4 處理數據
因為我想對數據進行持久化存儲,並且做展示和分析,所以我用了 django 里的 ORM 來處理抓下來的數據。
# add Portfolio
portfolio, c = models.Portfolio.objects.get_or_create(code=dic['symbol'])
portfolio.name = dic['name']
portfolio.earnings = dic['total_gain']
portfolio.save()
# add Stock
stocks = dic['view_rebalancing']['holdings']
for s in stocks:
stock, c = models.Stock.objects.get_or_create(code=s['stock_symbol'])
stock.name = s['stock_name']
stock.count += 1
stock.weight += s['weight']
stock.save()

Portfolio 記錄下組合及其收益,Stock則記錄每支股票的被收錄數和總收錄份額。
對於抓取到的,一般也可以存在文件中,或者直接通過 SQL 存入資料庫,視不同情況和個人喜好而定。
Step.5 批量抓取
前面的一套做下來,就完整地抓取了一組數據。要達到目的,還要設計一下批量抓取的程序。
一個要解決的問題就是如何獲得組合列表。這個可以再通過另一個抓取程序來實現。然後根據這些列表來循環抓取就可以了。
若要細究,還要考慮列表如何保存和使用,如何處理抓取失敗和重復抓取,如何控制抓取頻率防止被封,可否並行抓取等等。
Step.6 數據分析
數據有了,你要怎麼用它,這是個很大的問題。可以簡單的統計現象,也可以想辦法深入分析背後隱藏的邏輯。不多說,我也還只是在摸索之中。

『陸』 如何用python在掘金量化抓取數據

TuShare財經數據介面 – 可以直接抓取新浪財經、鳳凰財經的網站數據,包括行情、基本面、經濟數據等等。
完全免費,簡潔易用,API設計得非常友好,提取的數據格式是Pandas的DataFrame。同時可以獲取非高頻實時數據(取決於網站更新速度,同事經驗大約是15秒),一個極好的非高頻股票策略數據解決方案。

『柒』 如何利用python抓取美股數據

一 准備環境

1 安裝tushare模塊包。

pip install tushare

二 注冊tushare賬號,獲取token(目前tushare pro版本必須有token值才能正常訪問)

訪問https://tushare.pro/register?reg=380388 tushare官網進行注冊,然後記錄token值備用。

三 開始python編程

Python代碼:

import tushare as ts

#設置token

token='你自己的token'

pro = ts.pro_api(token)

#獲取002242.SZ日行數據

pa=pro.daily(ts_code='002242.SZ', start_date='20200701',end_date='20200716')

# 列印獲取數據

print(pa)

運行程序,可見如下列印,002242.SZ最近兩周的數據都在這里了。

閱讀全文

與python利用網址下載股票數據相關的資料

熱點內容
新浪和騰訊股票數據爬蟲 瀏覽:157
股票金融杠桿專業大牛證券 瀏覽:502
網秦天下科技股票 瀏覽:917
可口可樂股票全部走勢 瀏覽:594
華卓科技關聯股票 瀏覽:250
股票虧倒賬戶沒錢了會怎樣 瀏覽:423
國產自主軟體股票 瀏覽:90
st雲網a股票 瀏覽:149
股票債券投資者類型 瀏覽:439
國美金融科技的股票行情 瀏覽:401
中國製造大飛機股票代碼 瀏覽:262
證券股票有退市的嗎 瀏覽:28
民國浙江興業銀行股票 瀏覽:205
增加註冊資本是利好股票會漲停嗎 瀏覽:789
股票連續縮量周K線十字星圖形 瀏覽:965
粵宏遠a股票走勢分析 瀏覽:406
爬取股票的信息 瀏覽:668
香港雷士照明股票 瀏覽:692
etf基金股票構成 瀏覽:27
怎麼能知道股票的主力在哪 瀏覽:609