以一敵十的爬蟲 API 庫 - gopup!

大家好,我是安果!
想必大家平時(shí)可能會(huì)做一些數(shù)據(jù)分析,那么數(shù)據(jù)分析肯定就少不了數(shù)據(jù)
數(shù)據(jù)從哪里來呢?我們可以通過網(wǎng)絡(luò)爬蟲來爬取數(shù)據(jù),但是這個(gè)還是需要耗費(fèi)一定時(shí)間的
這時(shí)候就會(huì)有朋友說了,有沒有現(xiàn)成的數(shù)據(jù)呢?當(dāng)然有了,今天就給大家分享一個(gè)基于 Python 的、簡(jiǎn)便易用的數(shù)據(jù)接口,可能包含我們想要的各種各樣的數(shù)據(jù)
簡(jiǎn)介
這個(gè)庫的名字叫 GoPUP
GitHub 地址:https://github.com/justinzm/gopup
這其實(shí)是一個(gè)基于公開 API 的數(shù)據(jù)接口庫,這個(gè)庫封裝了各種各樣的方法,比如通過 wx_hot_list 這個(gè)方法我們就可以獲取實(shí)時(shí)的微信熱門文章榜單。
基本使用
下面我們來簡(jiǎn)單介紹下它的使用方法,首先是安裝,使用 pip3 即可:
pip3 install gopup
因?yàn)檫@個(gè)庫會(huì)不斷升級(jí),如果要升級(jí)的話大家可以運(yùn)行如下命令:
pip3 install -U gopup
安裝完畢之后就可以開始使用了,其實(shí)使用起來還是非常簡(jiǎn)單的。
比如這里我們以「微博指數(shù)」為例來說明下用法,官方文檔見 http://doc.gopup.cn/#/data/index_data?id=微博指數(shù)數(shù)據(jù)
接口: weibo_index
目標(biāo)地址: https://data.weibo.com/index/newindex
描述: 獲取指定 詞語 的微博指數(shù)
輸入?yún)?shù)
| 名稱 | 類型 | 必須 | 描述 |
|---|---|---|---|
| word | str | Y | 關(guān)鍵詞 |
| time_type | str | Y | time_type="1hour"; 1hour, 1day, 1month, 3month 選其一. |
輸出參數(shù)
| 名稱 | 類型 | 默認(rèn)顯示 | 描述 |
|---|---|---|---|
| date | datetime | Y | 日期-索引 |
| index | float | Y | 指數(shù) |
大家可以看到,這個(gè)接口的目標(biāo)地址實(shí)際上就是一個(gè)公開 API,然后我們只需要輸入對(duì)應(yīng)的詞語和時(shí)間段,就可以輸出對(duì)應(yīng)的指數(shù)結(jié)果。
接口用法如下:
import gopup as gp
df_index = gp.weibo_index(word="疫情", time_type="3month")
print(df_index)
這里我們先導(dǎo)入了 gopup 庫,然后調(diào)用了它的 weibo_index 方法,傳入關(guān)鍵詞和時(shí)間段,這里我們查詢的是最近三個(gè)月的疫情對(duì)應(yīng)的微博指數(shù),也就對(duì)應(yīng)這個(gè)詞在微博的熱度。
運(yùn)行結(jié)果如下:
疫情
index
2022-07-04 1518338
2022-07-05 1950590
2022-07-06 1924655
2022-07-07 1825620
2022-07-08 1768546
... ...
2022-09-30 2083183
2022-10-01 1365015
2022-10-02 1498437
2022-10-03 1323310
2022-10-04 1244449
[93 rows x 1 columns]
可以看到輸出的實(shí)際上是 Pandas 的 DataFrame 數(shù)據(jù)結(jié)構(gòu),如果我們用 Jupyter 運(yùn)行的話可能更直觀一些。
安裝并運(yùn)行 Jupyter
pip3 install jupyter
jupyter notebook
運(yùn)行類似的代碼,結(jié)果如下:
我們還可以進(jìn)一步將其轉(zhuǎn)化為可視化圖表:
import matplotlib.pyplot as plt
plt.figure(figsize=(15, 5))
plt.title("微博「疫情」熱度走勢(shì)圖")
plt.xlabel("時(shí)間")
plt.ylabel("指數(shù)")
plt.plot(df_index.index, df_index['疫情'], '-', label="指數(shù)")
plt.legend()
plt.grid()
plt.show()
結(jié)果如下:
這樣通過簡(jiǎn)單的幾行代碼我們就可以輕松將某個(gè)詞的熱度走勢(shì)可視化出來了,繪制成折線圖之后,熱度走勢(shì)一目了然。
更多數(shù)據(jù)
當(dāng)然上面僅僅是冰山一角,GoPUP 集成了各種公開 API,就像個(gè)爬蟲一樣給各種 API 提供了封裝,數(shù)據(jù)可謂是應(yīng)有盡有。
根據(jù) GoPUP 的簡(jiǎn)介,這里面的數(shù)據(jù)包括這些類別:
指數(shù)數(shù)據(jù):微博指數(shù)數(shù)據(jù),百度指數(shù)數(shù)據(jù),百度搜索數(shù)據(jù),百度資訊指數(shù),百度媒體指數(shù),百度需求圖譜,百度人群畫像年齡分布,百度人群畫像性別分布,百度人群畫像興趣分布;
算數(shù)數(shù)據(jù):算數(shù)指數(shù)數(shù)據(jù),算數(shù)相關(guān)性分析,算數(shù)地域分析,算數(shù)城市分析,算數(shù)年齡分析,算數(shù)性別分析,算數(shù)用戶閱讀興趣分類,谷歌指數(shù)數(shù)據(jù),谷歌指數(shù)數(shù)據(jù),谷歌事實(shí)查證;
宏觀數(shù)據(jù):中國宏觀數(shù)據(jù),中國宏觀杠桿率數(shù)據(jù),貨幣匯率數(shù)據(jù);
利率數(shù)據(jù):Shibor數(shù)據(jù),Shibor報(bào)價(jià)數(shù)據(jù),Shibor均值數(shù)據(jù),LPR數(shù)據(jù);
公司數(shù)據(jù):千里馬公司,獨(dú)角獸公司,倒閉公司,商業(yè)特許經(jīng)營公司;
信息數(shù)據(jù):新聞聯(lián)播文字稿;
生活數(shù)據(jù):中國油價(jià)數(shù)據(jù),汽柴油歷史調(diào)價(jià)信息,調(diào)價(jià)日的地區(qū)油價(jià)歷史數(shù)據(jù);
詩詞數(shù)據(jù):唐代詩人,唐詩數(shù)據(jù);
影視數(shù)據(jù):實(shí)時(shí)電影票房數(shù)據(jù),單日電影票房數(shù)據(jù),單日影院票房數(shù)據(jù),實(shí)時(shí)電視劇播映指數(shù),實(shí)時(shí)綜藝播映指數(shù),藝人商業(yè)價(jià)值,藝人流量?jī)r(jià)值;
全國高校數(shù)據(jù):全國普通高等學(xué)校名單,全國成人高等學(xué)校名單,全國高等學(xué)校詳情數(shù)據(jù);
疫情數(shù)據(jù):網(wǎng)易疫情數(shù)據(jù),丁香園疫情數(shù)據(jù)……
當(dāng)然這個(gè)庫也在不斷更新,更多詳細(xì)的內(nèi)容大家可以到官方文檔了解下:http://doc.gopup.cn/#/README
有了這些數(shù)據(jù),我們做數(shù)據(jù)分析和可視化就不用再去寫爬蟲啦,直接拿來用就好了,簡(jiǎn)直不要太方便!
好了,關(guān)于 GoPUP 就介紹這么多了,大家可以來試試看吧~

End

點(diǎn)個(gè)在看你最好看



