午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

【爬蟲案例】采集基金排行數(shù)據(jù)

 老馬的程序人生 2022-12-30 發(fā)布于湖南

爬取網(wǎng)站:http://fund.eastmoney.com/data/fundranking.html

爬取目標(biāo):采集近1年全部開放基金的排行數(shù)據(jù)。包括“基金代碼”,“基金簡稱”,“日期”,“單位凈值”,“累計(jì)凈值”,“日增長率”,“近1周”,“近1月”,“近3月”,“近6月”,“近1年”,“近2年”,“近3年”,“今年來”,“成立來”,“手續(xù)費(fèi)”,并存儲(chǔ)在CSV文件中。

目標(biāo)地址:

  • pi -- 當(dāng)前是第i頁
  • pn -- 每頁顯示pn條數(shù)據(jù)

反爬策略:防盜鏈

爬取代碼:

import requests
import csv
import time

url = 'http://fund.eastmoney.com/data/rankhandler.aspx'
para = {
    'op''ph',
    'dt''kf',
    'ft''all',
    'rs''',
    'gs'0,
    'sc''1nzf',
    'st''desc',
    'sd''2021-12-29',
    'ed''2022-12-29',
    'qdii''',
    'tabSubtype'',,,,,',
    'pi'1,
    'pn'1000,
    'dx'1,
    'v'0.39490818136479855
}
head = {
    'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
    'Referer''http://fund.eastmoney.com/data/fundranking.html'
}

with open(r'.\開放基金排行數(shù)據(jù).csv', mode='w+', newline='', encoding='utf-8'as f:
    csv_writer = csv.writer(f)
    csv_writer.writerow(["基金代碼""基金簡稱""日期""單位凈值""累計(jì)凈值""日增長率",
                         "近1周""近1月""近3月""近6月""近1年""近2年""近3年",
                         "今年來""成立來""手續(xù)費(fèi)"])

    for i in range(114):
        para['pi'] = i
        time.sleep(1)
        response = requests.get(url=url, params=para, headers=head)
        j = response.text.index('[')
        k = response.text.index("]")
        s = eval(response.text[j:k + 1])
        for r in s:
            lst = r.split(',')
            e0 = lst[0].rjust(6'0') + '\t'  # 基金代碼
            e1 = lst[1]  # 基金簡稱
            e2 = lst[3]  # 日期
            e3 = lst[4]  # 單位凈值
            e4 = lst[5]  # 累計(jì)凈值
            e5 = lst[6] + "%" if lst[6] != '' else "---"  # 日增長率
            e6 = lst[7] + "%" if lst[7] != '' else "---"  # 近1周
            e7 = lst[8] + "%" if lst[8] != '' else "---"  # 近1月
            e8 = lst[9] + "%" if lst[9] != '' else "---"  # 近3月
            e9 = lst[10] + "%" if lst[10] != '' else "---"  # 近6月
            e10 = lst[11] + "%" if lst[11] != '' else "---"  # 近1年
            e11 = lst[12] + "%" if lst[12] != '' else "---"  # 近2年
            e12 = lst[13] + "%" if lst[13] != '' else "---"  # 近3年
            e13 = lst[14] + "%" if lst[14] != '' else "---"  # 今年來
            e14 = lst[15] + "%" if lst[15] != '' else "---"  # 成立來
            e15 = lst[19]  # 手續(xù)費(fèi)
            t = [e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15]
            print(t)
            csv_writer.writerow(t)

注意:加'\t'是為了解決往.csv文件中保存以0開頭的數(shù)字字符串問題。

e0 = lst[0].rjust(6'0') + '\t'  # 基金代碼

最后結(jié)果:


一鍵三連,一起學(xué)習(xí)??

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多