前言 嗨嘍,大家好呀~這裡是愛看美女的茜茜吶 又到了學Python時刻~ 開發環境 & 第三方模塊: 解釋器版本: python 3.8 代碼編輯器: pycharm 2021.2 requests: pip install requests pyecharts: pip install pyech ...
前言
嗨嘍,大家好呀~這裡是愛看美女的茜茜吶
又到了學Python時刻~
開發環境 & 第三方模塊:
-
解釋器版本: python 3.8
-
代碼編輯器: pycharm 2021.2
-
requests: pip install requests
-
pyecharts: pip install pyecharts 數據分析
-
pandas: pip install pandas 數據分析
==點擊 藍色字體 領取完整源碼資料,我都放在這裡了。==
如何實現案例:
找到數據來源
靜態數據: 數據來源 網頁導航欄上的地址
動態數據: 單獨分析
實現代碼:
-
發送請求 通過代碼的方式 訪問一個網站
-
獲取數據
-
解析數據 從 獲取下來的數據內容當中 取出我們需要用到的
-
保存數據
代碼展示
採集數據
導入模塊
import requests # 發送請求 第三方模塊 import csv f = open('你的文件名字.csv', mode='a', encoding='utf-8', newline='') csv_writer = csv.writer(f) csv_writer.writerow(['symbol', 'name', 'chg', 'percent', 'current_year_percent', 'volume', 'amount', 'turnover_rate', 'pe_ttm', 'dividend_yield', 'market_capital'])
偽裝
因為代碼里有鏈接,不給過的,所以我截了圖,你們可以照上圖自行添加
==或點擊 藍色字體 領取完整源碼,我都放在這裡了。==
發送請求
response = requests.get(url=url, headers=headers)
獲取數據
<Response [403]> <Response [200]>: 請求成功
.text:
文本內容 取出來是一個字元串
.content:
當網頁鏈接為 圖片/音頻/shi'pin 獲取二進位數據
.json():
如果當數據是{}所包裹起來的時候 取出來就是字典數據
json_data = response.json()
鍵:值 鍵值對
{"A": "啊", "B": "不"}
{data: {count: 4940.....}, error_code: 0, error_description: ""}
解析數據
data_list = json_data['data']['list'] for i in range(0, len(data_list)): symbol = data_list[i]['symbol'] name = data_list[i]['name'] chg = data_list[i]['chg'] percent = data_list[i]['percent'] current_year_percent = data_list[i]['current_year_percent'] volume = data_list[i]['volume'] amount = data_list[i]['amount'] turnover_rate = data_list[i]['turnover_rate'] pe_ttm = data_list[i]['pe_ttm'] dividend_yield = data_list[i]['dividend_yield'] market_capital = data_list[i]['market_capital'] print(symbol, name, chg, percent, current_year_percent, volume, amount, turnover_rate, pe_ttm, dividend_yield, market_capital)
保存數據
csv_writer.writerow([symbol, name, chg, percent, current_year_percent, volume, amount, turnover_rate, pe_ttm, dividend_yield, market_capital])
效果展示
數據可視化
導入模塊
import pandas as pd # 做表格數據處理模塊 第三方的 from pyecharts.charts import Bar # 可視化模塊 第三方模塊 from pyecharts import options as opts # 可視化模塊裡面的設置模塊(圖表樣式) # 1. 讀取數據 df=pd.read_csv(r'你的文件名字.csv',engine='python') x = list(df['name'].values) y = list(df['volume'].values) y2 = list(df['amount'].values) c = ( Bar() .add_xaxis(x[:10]) .add_yaxis("成交額", y[:10]) .set_global_opts( xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)), title_opts=opts.TitleOpts(title="Bar-旋轉X軸標簽", subtitle="解決標簽名字過長的問題"), ) .render("bar_rotate_xaxis_label.html") ) # c = ( # Bar() # .add_xaxis(x[:10]) # .add_yaxis('成交量情況', y[:10]) # .add_yaxis('成交額情況', y2[:10]) # .set_global_opts( # title_opts=opts.TitleOpts(title='成交量圖表'), # datazoom_opts=opts.DataZoomOpts() # ) # ) # c.render('成交量圖表.html')