python抓a股數據(python獲取股票數據)

本文目錄一覽:

如何用python抓取股票數據

很多服務器通過瀏覽器發給它的報頭來確認是否是人類用戶,所以我們可以通過模仿瀏覽器的行為構造請求報頭給服務器發送請求。服務器會識別其中的一些參數來識別你是否是人類用戶,很多網站都會識別User-Agent這個參數,所以請求頭最好帶上。

有一些警覺性比較高的網站可能還會通過其他參數識別,比如通過Accept-Language來辨別你是否是人類用戶,一些有防盜鏈功能的網站還得帶上referer這個參數等等。

Python 如何爬股票數據

現在都不用爬數據拉,很多量化平台能提供數據接口的服務。像比如基礎金融數據,包括滬深A股行情數據,上市公司財務數據,場內基金數據,指數數據,期貨數據以及宏觀經濟數據;或者Alpha特色因子,技術分析指標因子,股票tick數據以及百度因子數據這些數據都可以在JQData這種數據服務中找到的。

有的供應商還能提供level2的行情數據,不過這種比較貴,幾萬塊一年吧

如何用python獲取股票數據

在Python的QSTK中,是通過s_datapath變量,定義相應股票數據所在的文件夾。一般可以通過QSDATA這個環境變量來設置對應的數據文件夾。具體的股票數據來源,例如滬深、港股等市場,你可以使用免費的WDZ程序輸出相應日線、5分鐘數據到s_datapath變量所指定的文件夾中。然後可使用Python的QSTK中,qstkutil.DataAccess進行數據訪問。

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

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

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

一、網頁源碼的獲取

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

import urllib.request

url=’ar.com/stock/ranklist_a_3_1_1.html’  #目標網址headers={“User-Agent”:”Mozilla/5.0 (Windows NT 10.0; WOW64)”}  #偽裝瀏覽器請求報頭request=urllib.request.Request(url=url,headers=headers)  #請求服務器response=urllib.request.urlopen(request)  #服務器應答content=response.read().decode(‘gbk’)   #以一定的編碼方式查看源碼print(content)  #打印頁面源碼

雖說抓一頁的源碼容易,不過在一個網站內大量抓取網頁源碼卻經常遭到服務器攔截,頓時感覺世界充滿了惡意。於是我開始研習突破反爬蟲限制的功法。

1.偽裝流浪器報頭

很多服務器通過瀏覽器發給它的報頭來確認是否是人類用戶,所以我們可以通過模仿瀏覽器的行為構造請求報頭給服務器發送請求。服務器會識別其中的一些參數來識別你是否是人類用戶,很多網站都會識別User-Agent這個參數,所以請求頭最好帶上。有一些警覺性比較高的網站可能還會通過其他參數識別,比如通過Accept-Language來辨別你是否是人類用戶,一些有防盜鏈功能的網站還得帶上referer這個參數等等。

2.隨機生成UA

證券之星只需帶User-Agent這個參數就可以抓取頁面信息了,不過連續抓取幾頁就被服務器阻止了。於是我決定每次抓取數據時模擬不同的瀏覽器發送請求,而服務器通過User-Agent來識別不同瀏覽器,所以每次爬取頁面可以通過隨機生成不同的UA構造報頭去請求服務器,

3.減慢爬取速度

雖然模擬了不同瀏覽器爬取數據,但發現有的時間段可以爬取上百頁的數據,有時候卻只能爬取十來頁,看來服務器還會根據你的訪問的頻率來識別你是人類用戶還是網絡爬蟲。所以我每抓取一頁都讓它隨機休息幾秒,加入此句代碼後,每個時間段都能爬取大量股票數據了。

4.使用代理IP

天有不測風雲,程序在公司時順利測試成功,回寢室後發現又只能抓取幾頁就被服務器阻止了。驚慌失措的我趕緊詢問度娘,獲知服務器可以識別你的IP,並記錄此IP訪問的次數,可以使用高匿的代理IP,並在抓取的過程中不斷的更換,讓服務器無法找出誰是真兇。此功還未修成,欲知後事如何,請聽下回分解。

5.其他突破反爬蟲限制的方法

很多服務器在接受瀏覽器請求時會發送一個cookie文件給瀏覽器,然後通過cookie來跟蹤你的訪問過程,為了不讓服務器識別出你是爬蟲,建議最好帶上cookie一起去爬取數據;如果遇上要模擬登陸的網站,為了不讓自己的賬號被拉黑,可以申請大量的賬號,然後再爬入,此處涉及模擬登陸、驗證碼識別等知識,暫時不再深究…總之,對於網站主人來說,有些爬蟲確實是令人討厭的,所以會想出很多方法限制爬蟲的進入,所以我們在強行進入之後也得注意些禮儀,別把人家的網站給拖垮了。

二、所需內容的提取

獲取網頁源碼後,我們就可以從中提取我們所需要的數據了。從源碼中獲取所需信息的方法有很多,使用正則表達式就是比較經典的方法之一。我們先來看所採集網頁源碼的部分內容。

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

pattern=re.compile(‘tbody[\s\S]*/tbody’)  

body=re.findall(pattern,str(content))  #匹配tbody和/tbody之間的所有代碼pattern=re.compile(‘(.*?)’)

stock_page=re.findall(pattern,body[0])  #匹配和之間的所有信息

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

語法    說明  

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

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

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

\s    空白字符:[空格\t\r\n\f\v]  

\S    非空白字符:[^\s]  

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

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

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

三、所得結果的整理

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

stock_last=stock_total[:] #stock_total:匹配出的股票數據for data in stock_total:  #stock_last:整理後的股票數據

if data==”:

stock_last.remove(”)

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

print(‘代碼’,’\t’,’簡稱’,’   ‘,’\t’,’最新價’,’\t’,’漲跌幅’,’\t’,’漲跌額’,’\t’,’5分鐘漲幅’)for i in range(0,len(stock_last),13):        #網頁總共有13列數據

print(stock_last[i],’\t’,stock_last[i+1],’ ‘,’\t’,stock_last[i+2],’  ‘,’\t’,stock_last[i+3],’  ‘,’\t’,stock_last[i+4],’  ‘,’\t’,stock_last[i+5])

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

TuShare財經數據接口 – 可以直接抓取新浪財經、鳳凰財經的網站數據,包括行情、基本面、經濟數據等等。

完全免費,簡潔易用,API設計得非常友好,提取的數據格式是Pandas的DataFrame。同時可以獲取非高頻實時數據(取決於網站更新速度,同事經驗大約是15秒),一個極好的非高頻股票策略數據解決方案。

如何使用python抓取炒股軟件中資金數據

這個說來有點複雜,用fiddle監控軟件跟服務器間的通訊,找到數據源地址,然後用excel或python抓這個源地址數據,可能還要加上反扒代碼,構造時間戳等等,你網上找python網抓視頻教程看看就知道了。

原創文章,作者:TKI09,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/129512.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
TKI09的頭像TKI09
上一篇 2024-10-03 23:26
下一篇 2024-10-03 23:26

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論