




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第python簡單的股票基金爬蟲1.首先,開始分析天天基金網(wǎng)的一些數(shù)據(jù)。經(jīng)過抓包分析,可知:./fundcode_search.js包含所有基金代碼的數(shù)據(jù)。
2.根據(jù)基金代碼,訪問地址:/js/+基金代碼+.js可以獲取基金實(shí)時(shí)凈值和估值信息。
3.根據(jù)基金代碼,訪問地址:/FundArchivesDatas.aspxtype=jjcccode=+基金代碼+topline=10year=2025month=3可以獲取第一季度該基金所持倉的股票。
4.由于這些地址具有反爬機(jī)制,多次訪問將會(huì)失敗的情況。所以需要搭建IP代理池,用于反爬。搭建很簡單,只需要將proxy_pool這個(gè)項(xiàng)目跑起來就行了。
#通過這個(gè)方法就能獲取代理
defget_proxy():
returnrequests.get(":5010/get/").json()
5.搭建完IP代理池后,我們開始著手多線程爬取數(shù)據(jù)的工作。使用多線程,需要考慮到數(shù)據(jù)的讀寫順序問題。這里使用python中的隊(duì)列queue存儲(chǔ)基金代碼,不同線程分別從這個(gè)queue中獲取基金代碼,并訪問指定基金的數(shù)據(jù)。因?yàn)閝ueue的讀取和寫入是阻塞的,所以可確保該過程不會(huì)出現(xiàn)讀取重復(fù)和讀取丟失基金代碼的情況。
#獲取所有基金代碼
fund_code_list=get_fund_code()
fund_len=len(fund_code_list)
#創(chuàng)建一個(gè)隊(duì)列
fund_code_queue=queue.Queue(fund_len)
#寫入基金代碼數(shù)據(jù)到隊(duì)列
foriinrange(fund_len):
#fund_code_list[i]也是list類型,其中該list中的第0個(gè)元素存放基金代碼
fund_code_queue.put(fund_code_list[i][0])
6.現(xiàn)在開始編寫獲取所有基金的代碼。
#獲取所有基金代碼
defget_fund_code():
#訪問網(wǎng)頁接口
req=requests.get("/js/fundcode_search.js",
timeout=5,
headers=header)
#解析出基金代碼存入list中
returnfund_code_list
7.接下來是從隊(duì)列中取出基金代碼,同時(shí)獲取基金詳情和基金持倉的股票。
#當(dāng)隊(duì)列不為空時(shí)
whilenotfund_code_queue.empty():
#從隊(duì)列讀取一個(gè)基金代碼
#讀取是阻塞操作
fund_code=fund_code_queue.get()
try:
#使用該基金代碼進(jìn)行基金詳情和股票持倉請(qǐng)求
8.獲取基金詳情
#使用代理訪問
req=requests.get(
"/js/"+str(fund_code)+".js",
proxies={"http":"http://{}".format(proxy)},
timeout=3,
headers=header,
#解析返回?cái)?shù)據(jù)
9.獲取持倉股票信息
#獲取股票投資明細(xì)
req=requests.get(
"/FundArchivesDatas.aspxtype=jjcccode="
+str(fund_code)+"topline=10year=2025month=3",
proxies={"http":"http://{}".format(proxy)},
timeout=3,
headers=header,
#解析返回?cái)?shù)據(jù)
10.準(zhǔn)備一個(gè)數(shù)據(jù)庫,用于存儲(chǔ)數(shù)據(jù)和對(duì)數(shù)據(jù)進(jìn)行篩選分析。這里推薦一個(gè)方便的云數(shù)據(jù)庫,一鍵創(chuàng)建,一鍵查詢,十分方便,而且是免費(fèi)的哦。前往MemFireDB注冊(cè)一個(gè)賬號(hào)就能使用。注冊(cè)邀請(qǐng)碼:6mxJl6、6mYjGY;
11.創(chuàng)建好數(shù)據(jù)庫后,點(diǎn)擊連接信息填入代碼中,用于連接數(shù)據(jù)庫。
#初始化數(shù)據(jù)庫連接:
engine=create_engine(
'postgresql+psycopg2://username:password@ip:5433/dbname')
12.將數(shù)據(jù)寫入數(shù)據(jù)庫中。
withget_session()ass:
#createfund
if(create):
s.add(fund)
mit()
13.到這里,大部分工作已經(jīng)完成了,我們?cè)趍ain函數(shù)中開啟線程,開始爬取。
#在一定范圍內(nèi),線程數(shù)越多,速度越快
foriinrange(50):
t=threading.Thread(target=get_fund_data,name="LoopThread"+str(i))
t.start()
14.等到爬蟲運(yùn)行完成之后,我們打開MemFireDB,點(diǎn)擊對(duì)應(yīng)數(shù)據(jù)庫的SQL查詢按鈕,就可以查看我們爬取的數(shù)據(jù)。哇!我們獲取到了6432條數(shù)據(jù)。
15.接下來讓我們來看看這些基金最喜歡買哪些股票吧。輸入SQL語句selectposcode,posname,count(*)ascount,cast(sum(poscost)asint)fromfundgroupby
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年青海省西寧市事業(yè)單位招聘考試衛(wèi)生類護(hù)理學(xué)專業(yè)知識(shí)試卷
- 2025年軟件設(shè)計(jì)師考試-軟件需求分析與設(shè)計(jì)前沿技術(shù)案例應(yīng)用研究試卷
- 2025年重慶市事業(yè)單位招聘公共基礎(chǔ)知識(shí)試卷深度分析
- 2025年專升本藝術(shù)概論模擬試卷-藝術(shù)批評(píng)的審美體驗(yàn)與審美趣味
- 2025法語DELF初級(jí)寫作綜合試卷
- 2025韓語TOPIK9級(jí)寫作閱讀理解能力評(píng)估試卷
- 2025年起重裝卸機(jī)械操作工職業(yè)技能鑒定試卷(難點(diǎn)解析)
- 2025年?duì)I養(yǎng)師(初級(jí))職業(yè)技能鑒定理論試卷:營養(yǎng)與公共衛(wèi)生項(xiàng)目評(píng)估可行性
- 2025年通信工程師考試信號(hào)與系統(tǒng)模擬試題試卷
- 2025年專升本藝術(shù)概論考試模擬試卷-藝術(shù)審美心理在藝術(shù)批評(píng)中的地位試題
- 《管道焊接技術(shù)培訓(xùn)》課件
- 停車合同協(xié)議書范本
- 工業(yè)自動(dòng)化項(xiàng)目改造與實(shí)施合同
- 水的包裝設(shè)計(jì)課件
- 2025城發(fā)環(huán)境股份限公司校園招聘89人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 民辦學(xué)校校長職責(zé)
- 《小米之家招商方案》課件
- 建筑施工-10S505柔性接口給水管道支墩規(guī)范圖集
- xx公路與天然氣管道交叉方案安全專項(xiàng)評(píng)價(jià)報(bào)告
- 護(hù)士帶教老師競聘
- 員工年終獎(jiǎng)協(xié)議書
評(píng)論
0/150
提交評(píng)論