日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 爬虫 | 爬取股票概念数据

發布時間:2023/12/14 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 爬虫 | 爬取股票概念数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這段時間寫了行業板塊、漲跌停板數據,獲取這些數據的目的就是想通過處理、分析這些數據把整個大盤的情況反饋給我,讓我可以用最少的時間進行復盤(說白了就是懶得看,果然懶才是程序員的第一生產力)。這幾天把這些數據給我一個大佬朋友進行分析,建議我增加多一個概念數據(讓我又可以水一篇)。


目標網站:

aHR0cDovL3F1b3RlLmVhc3Rtb25leS5jb20vY2VudGVyL2JvYXJkbGlzdC5odG1sI2NvbmNlcHRfYm9hcmQ=


難度:?


環境配置:

requests、pandas


目標數據:

圖1

圖2

我需要獲取概念、當日概念的領漲個股以及該概念下的股票。


目錄:

1、分析請求

2、代碼實現


1、分析請求

其實這些數據獲取難度不高,掌握了爬蟲基本功很快就能解決,剩下的就是存儲數據。

打開開發者工具刷新請求后Ctrl+F查找關鍵詞就能很快定位數據所在的請求。

圖1-1

觀察一下url,根據這幾次的爬取我知道url中大概率是有個參數控制一次返回的數據量的。我是觀察哪個參數的數值是20,因為這個網站一頁展示的數據量通常是20條。

4.push2.eastmoney.com/apz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&wbp2u=|0|0|0|web&fid=f3&fs=m:90+t:3+f:!50&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f26,f22,f33,f11,f62,f128,f136,f115,f152,f124,f107,f104,f105,f140,f141,f207,f208,f209,f222&_=1656493760247

通過觀察和測試很快就可以知道pz是控制返回數據量的關鍵參數。


再看看概念下所屬的個股

圖1-2

觀察一下url

push2.eastmoney.com/api%2Cf184%2Cf66%2Cf69%2Cf72%2Cf75%2Cf78%2Cf81%2Cf84%2Cf87%2Cf204%2Cf205%2Cf124%2Cf1%2Cf13

發現很多%2C,這只是url編碼而已,網上隨便找一個url在線解碼即可。

解完碼:

push2.eastmoney.com/apiBK1080&fields=f12,f14,f2,f3,f62,f184,f66,f69,f72,f75,f78,f81,f84,f87,f204,f205,f124,f1,f13

觀察是哪個參數解決了返回的是哪個概念數據,很快就可以找到fs這個參數中有BK1080,這個是概念的指數代碼。那想要大量獲取概念數據就需要解決每個概念對應的指數代碼是什么。觀察圖1-1中就可以很快找到概念對應的指數代碼。


2、代碼實現

實現思路:

一、獲取概念進入數據以及對應的指數代碼

二、依據一中得到的指數代碼構造url拿到概念下所屬的個股

三、獲取個股的地區板塊數據(告訴你們個好玩的)


代碼我就不解釋了吧?看不懂的該好好學學基礎了。

一、獲取概念數據

concept_url = "http://94.push2.eastmoney.com/api/qt/clist/get?cb=jQuery112404219515748621301_1656315378776&pn=1&" \"pz=500&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&wbp2u=|0|0|0|web&fid=f3&" \"fs=m:90+t:3+f:!50&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24," \"f25,f26,f22,f33,f11,f62,f128,f136,f115,f152,f124,f107,f104,f105,f140,f141,f207,f208,f209,f222&_=" \f"{int(time.time() * 1000)}"date = get_standard_date(timestamp=time.time())response = requests.request("GET", concept_url, headers=headers) concept_index_list = [] concept_name, up_down, representative = [], [], [] for i in jquery_list(jquery=response.text, data_mode='{')['data']['diff']:if i['f14'] in ('昨日連板_含一字', '昨日連板', '昨日漲停_含一字', '昨日漲停', '昨日跌停', '昨日觸板', '創業板綜', 'B股', '上證180_', 'AH股'):continueconcept_index_list.append((i['f12'], i['f14']))concept_name.append(i['f14'])up_down.append(i['f3'])representative.append(i['f128']) concept_data = {'概念名稱': concept_name, '概念漲跌幅': up_down, '領漲個股': representative} save_data(data=concept_data, file_name='概念數據', header=True)


二、獲取概念下所屬的個股

step = 1 for i in concept_index_list:# 概念明細concept_detail_url = "https://push2.eastmoney.com/api/qt/clist/get?cb=jQuery112309520971118134538_1656316025491&" \"fid=f62&po=1&pz=500&pn=1&np=1&fltt=2&invt=2&ut=b2884a393a59ad64002292a3e90d46a5&" \f"fs=b:{i[0]}&fields=f12,f14,f2,f3,f62,f184,f66,f69,f72,f75,f78,f81,f84,f87,f102,f204,f205," \"f124,f1,f13"result = requests.request("GET", concept_detail_url, headers=headers)stock_code, stock_name = [], []try:for x in jquery_list(jquery=result.text, data_mode='{')['data']['diff']:code_index = judge_index(x['f12'])stock_code.append(code_index)stock_name.append(x['f14'])zone_data.append((code_index, x['f14'], x['f102']))except TypeError:print('該概念有問題!')data = {'概念': [i[1]] * len(stock_code), '代碼': stock_code, '名稱': stock_name}if step == 1:save_data(data=data, file_name='概念數據-所屬個股')else:save_data(data=data, file_name='概念數據-所屬個股', header=False)step += 1time.sleep(0.5)

三、獲取地區數據

觀察這些返回的數據你會發現并沒有地區相關的數據,是沒有,但是我們可以讓接口返回地區數據。在上一篇中我就說了這個網站鏈接的參數是很好修改的,只要你知道地區參數是哪個就可以輕松獲取地區數據,地區數據是f102,只需要在鏈接后加上這個參數即可獲取地區數據。


數據獲取到這一步也算收集的差不多了,之后可以依據這些數據先初步搭建一個分析框架(又挖坑)。

總結

以上是生活随笔為你收集整理的Python 爬虫 | 爬取股票概念数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。