亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

python 簡單的股票基金爬蟲

瀏覽:45日期:2022-06-17 13:52:36
目錄項目地址所用到的技術開始編寫爬蟲項目地址

https://github.com/aliyoge/fund_crawler_py

所用到的技術 IP代理池 多線程 爬蟲 sql 開始編寫爬蟲

1.首先,開始分析天天基金網的一些數據。經過抓包分析,可知: ./fundcode_search.js包含所有基金代碼的數據。

2.根據基金代碼,訪問地址: fundgz.1234567.com.cn/js/ + 基金代碼 + .js可以獲取基金實時凈值和估值信息。

3.根據基金代碼,訪問地址: fundf10.eastmoney.com/FundArchivesDatas.aspx?type=jjcc&code= + 基金代碼 + &topline=10&year=2021&month=3可以獲取第一季度該基金所持倉的股票。

4.由于這些地址具有反爬機制,多次訪問將會失敗的情況。所以需要搭建IP代理池,用于反爬。搭建很簡單,只需要將proxy_pool這個項目跑起來就行了。

# 通過這個方法就能獲取代理def get_proxy(): return requests.get('http://127.0.0.1:5010/get/').json()

5.搭建完IP代理池后,我們開始著手多線程爬取數據的工作。使用多線程,需要考慮到數據的讀寫順序問題。這里使用python中的隊列queue存儲基金代碼,不同線程分別從這個queue中獲取基金代碼,并訪問指定基金的數據。因為queue的讀取和寫入是阻塞的,所以可確保該過程不會出現讀取重復和讀取丟失基金代碼的情況。

# 獲取所有基金代碼fund_code_list = get_fund_code()fund_len = len(fund_code_list)# 創建一個隊列fund_code_queue = queue.Queue(fund_len)# 寫入基金代碼數據到隊列for i in range(fund_len): # fund_code_list[i]也是list類型,其中該list中的第0個元素存放基金代碼 fund_code_queue.put(fund_code_list[i][0])

6.現在開始編寫獲取所有基金的代碼。

# 獲取所有基金代碼def get_fund_code(): ... # 訪問網頁接口 req = requests.get('http://fund.eastmoney.com/js/fundcode_search.js', timeout=5, headers=header) # 解析出基金代碼存入list中 ... return fund_code_list

7.接下來是從隊列中取出基金代碼,同時獲取基金詳情和基金持倉的股票。

# 當隊列不為空時while not fund_code_queue.empty(): # 從隊列讀取一個基金代碼 # 讀取是阻塞操作 fund_code = fund_code_queue.get() ... try:# 使用該基金代碼進行基金詳情和股票持倉請求...

8.獲取基金詳情

# 使用代理訪問req = requests.get( 'http://fundgz.1234567.com.cn/js/' + str(fund_code) + '.js', proxies={'http': 'http://{}'.format(proxy)}, timeout=3, headers=header,)# 解析返回數據...

9.獲取持倉股票信息

# 獲取股票投資明細req = requests.get( 'http://fundf10.eastmoney.com/FundArchivesDatas.aspx?type=jjcc&code=' + str(fund_code) + '&topline=10&year=2021&month=3', proxies={'http': 'http://{}'.format(proxy)}, timeout=3, headers=header,)# 解析返回數據...

10.準備一個數據庫,用于存儲數據和對數據進行篩選分析。這里推薦一個方便的云數據庫,一鍵創建,一鍵查詢,十分方便,而且是免費的哦。前往MemFireDB注冊一個賬號就能使用。注冊邀請碼:6mxJl6、6mYjGY;

python 簡單的股票基金爬蟲

11.創建好數據庫后,點擊連接信息填入代碼中,用于連接數據庫。

python 簡單的股票基金爬蟲

# 初始化數據庫連接:engine = create_engine(’postgresql+psycopg2://username:password@ip:5433/dbname’)

12.將數據寫入數據庫中。

with get_session() as s: # create fund ... if (create):s.add(fund) s.commit()

13.到這里,大部分工作已經完成了,我們在main函數中開啟線程,開始爬取。

# 在一定范圍內,線程數越多,速度越快for i in range(50): t = threading.Thread(target=get_fund_data, name='LoopThread' + str(i)) t.start()

14.等到爬蟲運行完成之后,我們打開MemFireDB,點擊對應數據庫的SQL查詢按鈕,就可以查看我們爬取的數據。哇!我們獲取到了6432條數據。

python 簡單的股票基金爬蟲

15.接下來讓我們來看看這些基金最喜歡買哪些股票吧。輸入SQL語句select poscode, posname, count(*) as count, cast(sum(poscost) as int) from fund group by poscode, posname order by count desc limit 10;

python 簡單的股票基金爬蟲

它就是茅臺!

以上就是python 簡單的股票基金爬蟲的詳細內容,更多關于python 股票基金爬蟲的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日韩a一级欧美一级 | 日韩三及片 | 视频精品一区 | 亚洲综合天堂网 | 99热久久国产精品免费看 | 欧美日韩一区二区三区免费不卡 | 成人性动漫高清免费观看网址 | 日本一区二区高清免费不卡 | 偷拍亚洲欧美 | 国产孕妇孕交视频在线观看 | 久久免费播放视频 | 亚洲精品免费在线观看 | 视频国产91 | 国产成人十八黄网片 | 在线观看亚洲网站 | 韩国一级性生活片 | 国产亚洲精品xxx | 特级淫片日本高清视频 | 亚洲精品中文字幕久久久久久 | 成人一级免费视频 | 国产精品国产自线在线观看 | 国产午夜不卡在线观看视频666 | 2017天天爽夜夜爽精品视频 | 久久精品国产精品亚洲综合 | 亚洲视频日韩 | 久久久久久久99精品免费 | 一个人的视频日本免费 | 精品日本亚洲一区二区三区 | 一级a级国产不卡毛片 | 亚洲国产成人久久一区www | 婷婷丁香久久 | 韩国理伦一级毛片 | 欧美日韩精品免费一区二区三区 | 国内真实愉拍系列情侣自拍 | 免费欧洲毛片a级视频 | 特黄特色大片免费播放路01 | 国产精品一区二区三区免费 | 中文字幕国产视频 | 成熟的女性强烈交性视频 | 精品一区二区在线欧美日韩 | 国产精品.com |