Python爬蟲獲取基金列表
1 前言
python爬蟲用來收集數據是最直接和常用的方法,可以使用python爬蟲程序獲得大量的數據,從而變得非常的簡單和快速;絕大多數網站使用了模板開發(fā),使用的模板可以快速生成大量相同布局不同內容的頁面,這時只需要為一個頁面開發(fā)爬蟲程序,因為爬蟲程序也可以對同一模板生成的不同內容進行爬取內容
2 哪里去獲取數據呢
這里給大家準備好了,打開這個連接,就能找看到對應的基金信息:
http://fund.eastmoney.com/jzzzl.html
有了基金連接,我們要做的就是怎么把它抓取下來,123 開始,我恰巧發(fā)現(xiàn)了后臺訪問的接口,是不是很神奇,該是上圖的時候了,大家可以看到如下圖:

# 這是原始的連接 http://fund.eastmoney.com/Data/Fund_JJJZ_Data.aspx?lx=1&sort=zdf,desc&page=2,200&onlySale=0 # 經過我使用postman 刪減掉一些參數發(fā)現(xiàn)精簡的連接如下,我不能不吐槽一下,這個時候了還有參數傳遞使用中文首字母拼寫的, # lx分明就是類型的簡寫。sort 是對某些字段排序可以忽略。分頁的話2,200就是第二頁,每頁200條,onlySale就是可以賣出的條件。 http://fund.eastmoney.com/Data/Fund_JJJZ_Data.aspx?lx=1&sort=zdf,desc&page=2,100&onlySale=0
3 怎么抓取數據呢
這里我們使用python,需要安裝的類庫有 requests/demjson/prettytable/json,有沒有特別簡單呢?
# 安裝命令如下 # 發(fā)起請求 pip install requests # 將不是那么嚴格的json 格式轉換為json pip install demjson # 格式化打印數據 pip install prettytable # 將json 格式化的文本轉換為json pip install json
這里我可以上代碼了,簡單的邏輯就是先抓取api接口返回的信息,然后解析報文,將返回結果轉換成json 格式后只選擇需要獲取的內容,最后將獲取的結果進行輸出即可。
import requests
import json
import demjson
from prettytable import PrettyTable
# 數據表格的列表表頭字段
title_list = ["code", "name", "value"]
# 查詢基金列表信息
def query_fund_list(page= 1):
req_url = "http://fund.eastmoney.com/Data/Fund_JJJZ_Data.aspx?lx=1&sort=zdf,desc&page={},20&onlySale=0".format(page)
response = requests.get(req_url)
# 輸出響應頭
# print(response.headers)
# 獲取請求結果并替換,否則結果不能進行格式化json
resp_body = response.text.replace("var db=", "")
# 本來首選是這個json, 因為json 不支持 {a :"1"} 這樣的轉換,因此使用了 demojson
# json_data = json.loads(resp_body)
# 轉換對象為 json 對象,使不規(guī)則的json格式化為json對象
resp_body = demjson.decode(resp_body)
# 獲取結果數組
fund_list = resp_body["datas"]
body_list = []
for node in fund_list:
tmp = []
tmp.append(node[0])
tmp.append(node[1])
tmp.append(node[3])
body_list.append(tmp)
# 創(chuàng)建一個對象 PrettyTable 用于打印輸出結果
bt = PrettyTable()
# 將表頭信息信息放入bt 中
bt.field_names = title_list
# 將表格內容放置在 bt 中
bt.add_rows(body_list)
# 打印結果
print(bt)
if __name__ == "__main__":
# 這里只打印了第一頁,循環(huán)打印結果就不寫了,大家都會的
query_fund_list(1)最終輸出的結果如圖所示 :

最終我們達到的結果就是這樣的結果,有了這些結果,我們可以進行結構化存儲,放進數據庫中方面查詢和使用。
| 基金代碼 | 基金名稱 | 最新凈值 |
|---|---|---|
| 005585 | 銀河文體娛樂混合 | 1.6363 |
| 001907 | 國投瑞銀境煊靈活配置混合A | 3.3055 |
| 001908 | 國投瑞銀境煊靈活配置混合C | 3.1667 |
| 164818 | 工銀中證傳媒指數(LOF)A | 0.9231 |
| ... | ... | ... |
這是一個簡單的開始,我們獲取到了基金的列表。后續(xù)我們會抓取基金的基本信息和變動信息,建立模型去展現(xiàn)。
到此這篇關于Python爬蟲獲取基金列表的文章就介紹到這了,更多相關Python獲取列表內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python加pyGame實現(xiàn)的簡單拼圖游戲實例
這篇文章主要介紹了Python加pyGame實現(xiàn)的簡單拼圖游戲,以一個完整實例形式分析了pyGame模塊操作圖片的相關技巧,需要的朋友可以參考下2015-05-05
python?flappy?bird小游戲分步實現(xiàn)流程
哈嘍,哈嘍~今天小編又來分享小游戲了——flappy?bird(飛揚的小鳥),這個游戲非常的經典,游戲中玩家必須控制一只小鳥,跨越由各種不同長度水管所組成的障礙2022-02-02

