python專案例項:抓取網頁時間段內的請求次數、頻寬
python專案例項:抓取網頁時間段內的請求次數、頻寬
需求說明:
介面地址:bandwidth_api = “https://api.upyun.com/flow/common_data”
head認證資訊:headers = {“Authorization”: “Bearer b3ea80e2-3d72-4822-ae94-b43ce05eff10”}
介面接受GET方式請求
介面接受兩個引數:start_time、end_time
如:
‘start_time’: ‘2020-12-15 00:00:00’,
‘end_time’: ‘2020-12-22 00:00:00’
需求:
1、獲取最近7天的資料,並將資料中的 time bandwidth reqs 三個資料寫入
excel表格和csv表格中 格式如:
時間 頻寬 請求數
2020/12/15 0:05 403122 161.33
2020/12/15 0:10 375068 152.88
2020/12/15 0:15 370334 157.58
2020/12/15 0:20 352434 151.63
2020/12/15 0:25 345723 147.14
2020/12/15 0:30 352961 147.07
2020/12/15 0:35 330175 140.51
2020/12/15 0:40 336152 139.36
2020/12/15 0:45 336537 141.81
2020/12/15 0:50 311625 132.85
2、並畫出折線圖
資料寫入csv表格參考:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html
資料寫入excel表格參考:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_excel.html
畫圖參考:https://gallery.pyecharts.org/#/Line/basic_line_chart
程式碼展示:可能token已過期,需要重新生成
知識點:requests、arrow、json等等第三方庫,函式,閉包,字典等等
# coding:utf-8
import requests
import arrow
import json
import pandas as pd
import pyecharts.options as opts
from pyecharts.charts import Line
def get_data():
print("正在執行get_data函式") #這裡體現出閉包的好處,不管下面呼叫多少次,get_data()只呼叫一次
st = arrow.now().shift(weeks=-1).format("YYY-MM-DD")
et = arrow.now().format("YYY-MM-DD")
def f2():
bandwidth_api = "https://api.upyun.com/flow/common_data"
headers = {"Authorization": "1ea9a9d4-03e2-43ae-9df6-c81ad1f0d2ed"}
payload = {'start_time': st, 'end_time': et}
r = requests.get(bandwidth_api, params=payload, headers=headers)
list_reqs = []
list_time = []
list_bandwidth = []
fd = r.text
r = json.loads(fd)
for data in r:
list_reqs.append(data["reqs"])
list_bandwidth.append(data["bandwidth"])
list_time.append(arrow.get(data['time']).to('local').format("YYYY-MM-DD HH:mm:ss"))
return list_reqs, list_time, list_bandwidth
return f2
datas = get_data()
def save_excel():
list_reqs, list_time, list_bandwidth = datas()
df1 = pd.DataFrame(list(zip(list_bandwidth, list_time, list_reqs)),
columns = ["時間","頻寬","請求數"])
df1.to_excel(r"C:\Users\ASUS\Desktop\輸出資料.xlsx",index = False)
def save_csv():
list_reqs, list_time, list_bandwidth = datas()
df = pd.DataFrame({'時間': list_time,
'頻寬': list_bandwidth,
'請求數': list_reqs})
df.to_csv(r"C:\Users\ASUS\Desktop\輸出資料.csv", index=False, encoding='utf-8-sig')
def save_plot():
list_reqs, list_time, list_bandwidth = datas()
(
Line()
.set_global_opts(
tooltip_opts=opts.TooltipOpts(is_show=False),
xaxis_opts=opts.AxisOpts(type_="category"),
yaxis_opts=opts.AxisOpts(
type_="value",
axistick_opts=opts.AxisTickOpts(is_show=True),
splitline_opts=opts.SplitLineOpts(is_show=True),
),
)
.add_xaxis(xaxis_data=list_time)
.add_yaxis(
series_name="",
y_axis=list_bandwidth,
symbol="emptyCircle",
is_symbol_show=True,
label_opts=opts.LabelOpts(is_show=False),
)
.add_yaxis(
series_name="",
y_axis=list_reqs,
symbol="emptyCircle",
is_symbol_show=True,
label_opts=opts.LabelOpts(is_show=False),
)
.render(r"C:\Users\ASUS\Desktop\chart.html")
)
save_excel()
save_csv()
save_plot()
相關文章
- java請求頻次控制Java
- 1s內控制向某個請求請求的次數
- 網頁根據螢幕寬度請求不同的CSS檔案網頁CSS
- 分享一次機房出口頻寬跑滿的案例
- 求一個ot的專案例項
- 使用Python請求http/https時設定失敗重試次數PythonHTTP
- 完整的python專案例項-python完整專案Python
- Python實現簡單網頁圖片抓取完整程式碼例項Python網頁
- 例項:使用puppeteer headless方式抓取JS網頁JS網頁
- 上海臨時寬頻,網路基站,臨時網路搭建
- 一個網頁從輸入地址回車,到完整展示網頁內容這段時間裡,做了哪些工作網頁
- Leetcode刷題之 【最近的請求次數】LeetCode
- Python使用request包請求網頁亂碼解決方法Python網頁
- 實時監控.NET Core請求次數:建立記錄最近5分鐘的請求,輕鬆可靠
- 使用 Beautiful Soup 在 Python 中抓取網頁Python網頁
- MATLAB求多項式係數及次數Matlab
- 關於兩次http請求,後一次請求影響前一次請求的問題HTTP
- Element頁面內多個上傳元件 超時使用abort取消請求元件
- yapi 如何獲得: 當前時間和 n 天后的時間作為引數進行請求API
- 關於在request請求時,處理請求引數的問題
- curl 請求獲取響應時間
- 如何用Python爬資料?(一)網頁抓取Python網頁
- 有趣的請求引數/請求頭
- Python例項之用Python求完全平方數Python
- 網路應用優化——時延與頻寬優化
- 如何使用nload實時監控網路頻寬
- 完整的python專案例項-Python例項練手專案彙總(附原始碼)Python原始碼
- 請求OpenFeign的GET請求時,請求為何失敗?
- 頻寬是什麼意思 頻寬和寬頻網速有什麼區別關係
- Charles 抓取 https 請求說明文件(mac)HTTPMac
- 使用代理抓取網頁的原因網頁
- 成品直播原始碼,golang計算時間段內的工作日數量原始碼Golang
- JS判定一個給定的時間區間在哪些時間段範圍內JS
- iOS for 迴圈內網路請求的處理iOS內網
- 網頁倒數計時跳轉程式碼例項網頁
- Python中使用mechanize庫抓取網頁上的表格資料Python網頁
- python 資料型別 python 做一天內時間段判斷測試Python資料型別
- 如何避免在網頁抓取時被檢測到?網頁