Python抓取數(shù)據(jù)到可視化全流程的實(shí)現(xiàn)過程
1、爬取目標(biāo)網(wǎng)站:業(yè)績(jī)預(yù)告_數(shù)據(jù)中心_同花順財(cái)經(jīng)
(ps:headers不會(huì)設(shè)置的可以看這篇:Python 用requests.get獲取網(wǎng)頁(yè)內(nèi)容為空 ’ ’)
import pandas as pd import numpy as np import matplotlib.pyplot as plt import re import requests##把各種可能用到的包提前導(dǎo)好 headers={ ? ?'Accept': 'text/html,*/*; q=0.01', ? ? 'hexin-v': 'A2C11EVPFXAhNKl0PUpM6xp8MWU2aUUO5k-YOdpwLngMrQpTgnkUwzZdaMMp', ? ? 'Referer': 'http://data.10jqka.com.cn/financial/yjyg/', ? ?'Cookie':'對(duì)應(yīng)填寫', ? ? 'User-Agent':'對(duì)應(yīng)填寫' } url="http://data.10jqka.com.cn/ajax/yjyg/date/2021-12-31/board/ALL/field/enddate/order/desc/page/{}/ajax/1/free/1/" result = '' ? for i in range(1,5):? ? ? result += requests.get(url.format(i), headers=headers).text result
爬取成功,檢查數(shù)據(jù):
2、獲取序號(hào)、股票代碼、等你所需要的信息
index = re.findall('<td>(.*)</td>',result) index
148條數(shù)據(jù)符合預(yù)期,繼續(xù)查看股票代碼(這里使用正則表達(dá)式查詢,可以看這篇里邊對(duì)正則表達(dá)式進(jìn)行了講解:正則表達(dá)式+常用示例)
stock_code = re.findall('class="stockCode">(.*)</a>',result) print(stock_code)
3、組成DataFrame
data = pd.DataFrame({ ? ? "stock_code":stock_code, ? ? "stock_name":stock_name, ? ? "performance":performance, ? ? "summary":summary }, index=index) ? data
組合成功
4、處理數(shù)據(jù)
使用正則篩選出凈利潤(rùn)和增長(zhǎng)幅度
data['start_profit'] = data['summary'].str.extract('(-{0,1}\d{0,10}\.{0,1}\d{0,10})萬(wàn)元') data['end_profit'] = data['summary'].str.extract('至(-{0,1}\d{0,10}\.{0,1}\d{0,10})萬(wàn)元') data["start_range"] = data['summary'].str.extract('(\d{0,5}\.{0,1}\d{0,5})%') + "%" data["end_range"] = data['summary'].str.extract('至(\d{0,5}\.{0,1}\d{0,5})%') + "%" data.head()
判斷盈利情況:
?def if_profit(x): ? ? if x in ['業(yè)績(jī)預(yù)降', '業(yè)績(jī)大幅上升', '業(yè)績(jī)大幅下降', '業(yè)績(jī)預(yù)盈', '業(yè)績(jī)預(yù)增', '預(yù)計(jì)扭虧']: ? ? ? ? return 1 ? ? if x in ['預(yù)計(jì)減虧', '不確定','業(yè)績(jī)預(yù)虧', '預(yù)計(jì)增虧', '預(yù)計(jì)續(xù)虧']: ? ? ? ? return -1 ? ? return 0 data['is_profit'] = data.apply(lambda x : if_profit(x["performance"]),axis=1) data.head() ##計(jì)算盈利多少 yingli = (data['is_profit'] == 1).sum() yingli ##虧損多少 kuisun = (data['is_profit'] == -1).sum() kuisun
通過繪制餅圖實(shí)現(xiàn)可視化:
plt.pie([yingli,kuisun], labels=['盈利','虧損'], autopct='%.2f%%') font={ ? ? "family":"kaiti", ? ? "size":"15" } plt.rc("font",**font) plt.title('148家公司盈利和虧損情況占比') plt.show()
到此這篇關(guān)于Python抓取數(shù)據(jù)到可視化全流程的實(shí)現(xiàn)過程的文章就介紹到這了,更多相關(guān)Python抓取數(shù)據(jù)到可視化 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python獲取redis memory使用情況場(chǎng)景分析
這篇文章主要介紹了python獲取redis memory使用情況,項(xiàng)目研發(fā)過程中,用到Python操作Redis場(chǎng)景,記錄學(xué)習(xí)過程中的心得體會(huì),需要的朋友可以參考下2022-12-12python+JS?實(shí)現(xiàn)逆向?SMZDM?的登錄加密
這篇文章主要介紹了python+JS?實(shí)現(xiàn)逆向?SMZDM?的登錄加密,文章通過利用SMZDM平臺(tái)展開詳細(xì)的內(nèi)容介紹,需要的小伙伴可以參考一下2022-05-05Python初識(shí)二叉樹續(xù)之實(shí)戰(zhàn)binarytree
binarytree庫(kù)是一個(gè)Python的第三方庫(kù),這個(gè)庫(kù)實(shí)現(xiàn)了一些二叉樹相關(guān)的常用方法,使用二叉樹時(shí),可以直接調(diào)用,不需要再自己實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于Python初識(shí)二叉樹之實(shí)戰(zhàn)binarytree的相關(guān)資料,需要的朋友可以參考下2022-05-05opencv+tesseract實(shí)現(xiàn)驗(yàn)證碼識(shí)別的示例
本文主要介紹了opencv+tesseract實(shí)現(xiàn)驗(yàn)證碼識(shí)別的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06nginx搭建基于python的web環(huán)境的實(shí)現(xiàn)步驟
這篇文章主要介紹了nginx搭建基于python的web環(huán)境的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01Pyinstaller打包.py生成.exe的方法和報(bào)錯(cuò)總結(jié)
今天小編就為大家分享一篇關(guān)于Pyinstaller打包.py生成.exe的方法和報(bào)錯(cuò)總結(jié),小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04Python使用tkinter實(shí)現(xiàn)搖骰子小游戲功能的代碼
這篇文章主要介紹了Python使用tkinter實(shí)現(xiàn)的搖骰子小游戲功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07python上下文管理器協(xié)議的實(shí)現(xiàn)
這篇文章主要介紹了python上下文管理器協(xié)議的實(shí)現(xiàn),在python中所有實(shí)現(xiàn)了上下文管理器協(xié)議的對(duì)象 都可以用使用with操作,with啟動(dòng)了對(duì)象的上下文管理器2022-06-06