Python如何采集基金數據,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
案例實現流程
思路分析:
需要什么數據?需要的數據在哪里?
代碼實現:
發送請求
獲取數據
解析數據
多頁爬取
保存數據
知識點:
requests發送請求
開發者工具的使用
json類型數據解析
正則表達式的使用
開發環境:
版 本:python 3.8
編輯器:pycharm 2021.2
本次目標:


第一步:打開開發者工具,按F12,或者右鍵點擊檢查
第二步:刷新網站,點擊搜索工具,在搜索框內輸入基金代碼,點擊搜索

第三步:找到數據所在的真實url

導入模塊:
import requests import re import csv
發送請求:
url = f'http://fund.eastmoney.com/data/rankhandler.aspx?op=ph&dt=kf&ft=all&rs=&gs=0&sc=6yzf&st=desc&sd=2020-12-16&ed=2021-12-16&qdii=&tabSubtype=,,,,,&pi=1&pn=50&dx=1'
headers = {
'Cookie': 'HAList=a-sz-300059-%u4E1C%u65B9%u8D22%u5BCC; em_hq_fls=js; qgqp_b_id=7b7cfe791fce1724e930884be192c85e; _adsame_fullscreen_16928=1; st_si=59966688853664; st_asi=delete; st_pvi=79368259778985; st_sp=2021-12-07%2014%3A33%3A35; st_inirUrl=https%3A%2F%2Fwww.baidu.com%2Flink; st_sn=3; st_psi=20211216201351423-112200312936-0028256540; ASP.NET_SessionId=miyivgzxegpjaya5waosifrb',
'Host': 'fund.eastmoney.com',
'Referer': 'http://fund.eastmoney.com/data/fundranking.html',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
}
response = requests.get(url=url, headers=headers)獲取數據:
data = response.text
解析數據 篩選數據:
data_str = re.findall('\[(.*?)\]', data)[0]轉變數據類型:
tuple_data = eval(data_str)
for td in tuple_data:
# 把td 變成列表
td_list = td.split(',')翻頁:
分析不同頁數url變化規律

for page in range(1, 193):
print(f'-------------------------正在爬取第{page}頁內容-----------------------')
url = f'http://fund.eastmoney.com/data/rankhandler.aspx?op=ph&dt=kf&ft=all&rs=&gs=0&sc=6yzf&st=desc&sd=2020-12-16&ed=2021-12-16&qdii=&tabSubtype=,,,,,&pi={page}&pn=50&dx=1'保存數據:
with open('基金.csv', mode='a', encoding='utf-8', newline='') as f:
csv_write = csv.writer(f)
csv_write.writerow(td_list)
print(td)

關于Python如何采集基金數據問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。