導航:首頁 > 數據行情 > 使用scrapy爬取股票資料庫

使用scrapy爬取股票資料庫

發布時間:2022-07-27 07:41:17

A. 基於python的scrapy爬蟲,關於增量爬取是怎麼處理的

一、增量爬取的思路:即保存上一次狀態,本次抓取時與上次比對,如果不在上次的狀態中,便視為增量,保存下來。對於scrapy來說,上一次的狀態是抓取的特徵數據和上次爬取的 request隊列(url列表),request隊列可以通過request隊列可以通過scrapy.core.scheler的pending_requests成員得到,在爬蟲啟動時導入上次爬取的特徵數據,並且用上次request隊列的數據作為start url進行爬取,不在上一次狀態中的數據便保存。
二、選用BloomFilter原因:對爬蟲爬取數據的保存有多種形式,可以是資料庫,可以是磁碟文件等,不管是資料庫,還是磁碟文件,進行掃描和存儲都有很大的時間和空間上的開銷,為了從時間和空間上提升性能,故選用BloomFilter作為上一次爬取數據的保存。保存的特徵數據可以是數據的某幾項,即監控這幾項數據,一旦這幾項數據有變化,便視為增量持久化下來,根據增量的規則可以對保存的狀態數據進行約束。比如:可以選網頁更新的時間,索引次數或是網頁的實際內容,cookie的更新等

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

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

C. python使用scrapy框架爬取飛豬數據被重定向到登錄界面

你這種情況可以先在scrapy
shell嘗試加驗證,
因為程序有些時候復雜了,我們對錯誤的源頭容易找錯!
一般在瀏覽器裡面沒有一開始重定向,那麼scrapy中也不會!

D. 如何使用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 數據分析
數據有了,你要怎麼用它,這是個很大的問題。可以簡單的統計現象,也可以想辦法深入分析背後隱藏的邏輯。不多說,我也還只是在摸索之中。

E. 如何用python抓取股票數據

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

F. 如何用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])

G. 如何用爬蟲抓取股市數據並生成分析報表

1. 關於數據採集
股票數據是一種標准化的結構數據,是可以通過API介面訪問的(不過一般要通過渠道,開放的API有一定的局限性)。也可以通過爬蟲軟體進行採集,但是爬蟲軟體採集數據不能保證實時性,根據數據量和採集周期,可能要延遲幾十秒到幾分鍾不等。我們總結了一套專業的爬蟲技術解決方案(Ruby + Sidekiq)。能夠很快實現這個採集,也可以後台可視化調度任務。

2. 關於展現
網路股票數據的展現,網頁端直接通過HTML5技術就已經足夠,如果對界面要求高一點,可以採用集成前端框架,如Bootstrap;如果針對移動端開發, 可以使用Ionic框架。

3. 關於觸發事件
如果是採用Ruby on Rails的開發框架的話,倒是很方便了,有如sidekiq, whenever這樣子的Gem直接實現任務管理和事件觸發。

H. 如何使用python抓取炒股軟體中資金數據

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

I. 網路爬蟲抓取數據 有什麼好的應用

一般抓數據的話可以學習Python,但是這個需要代碼的知識。
如果是沒有代碼知識的小白可以試試用成熟的採集器。
目前市面比較成熟的有八爪魚,後羿等等,但是我個人習慣八爪魚的界面,用起來也好上手,主要是他家的教程容易看懂。可以試試。

J. 求助如何用R或者Python抓取同花順網

非要用同花順的話,比較可行的辦法是:做外掛程序,模擬鍵盤滑鼠輸入或者操控窗體控制項
另外就是模擬登陸你券商的web交易版本,這個有一個開源的項目GitHub - shidenggui/easytrader: 提供券商華泰/傭金寶/銀河/廣發/雪球的基金、股票自動程序化交易,量化交易組件
目前支持華泰/傭金寶/銀河/廣發/雪球

閱讀全文

與使用scrapy爬取股票資料庫相關的資料

熱點內容
債券利息和股票收益 瀏覽:109
可以看股票行情的軟體哪個好 瀏覽:367
600015股票走勢 瀏覽:603
有哪些退市股票重新上市了 瀏覽:763
關於華為人工智慧的股票有哪些方面 瀏覽:54
量子模擬炒股股票軟體 瀏覽:65
銀行股票價值 瀏覽:151
股票成交明細累計app 瀏覽:577
幻電科技上海有限公司股票 瀏覽:16
民生銀行股票多少錢一股 瀏覽:352
st銳電股票s 瀏覽:470
香港機構通常喜歡買哪些股票 瀏覽:707
香港股票支持華美銀行轉賬 瀏覽:25
邁克生物科技股票 瀏覽:239
中國央行股票代碼 瀏覽:792
股票長期持有會漲嗎 瀏覽:738
怎麼樣判斷一隻今天股票走勢 瀏覽:807
全球的第一隻股票 瀏覽:86
發行股票實體現金流量 瀏覽:230
股票賬戶密碼被凍結怎麼解除 瀏覽:894