Python爬虫-抓取数据到可视化全流程的实现
生活随笔
收集整理的這篇文章主要介紹了
Python爬虫-抓取数据到可视化全流程的实现
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?(ps:我也是在學(xué)習(xí)的過(guò)程中,歡迎各位小伙伴跟我一起交流,一起學(xué)習(xí))
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)容為空 ’ ’_你隔壁的小王的博客-CSDN博客)
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á)式+常用示例_你隔壁的小王的博客-CSDN博客)
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 1if x in ['預(yù)計(jì)減虧', '不確定','業(yè)績(jī)預(yù)虧', '預(yù)計(jì)增虧', '預(yù)計(jì)續(xù)虧']:return -1return 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通過(guò)繪制餅圖實(shí)現(xiàn)可視化:
plt.pie([yingli,kuisun], labels=['盈利','虧損'], autopct='%.2f%%') font={"family":"kaiti","size":"15" } plt.rc("font",**font) plt.title('148家公司盈利和虧損情況占比') plt.show()有問(wèn)題歡迎大家跟我討論!
總結(jié)
以上是生活随笔為你收集整理的Python爬虫-抓取数据到可视化全流程的实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C语言实现最大字段和(动态规划法和分治法
- 下一篇: 基于PI双闭环解耦控制的三相SVPWM电