帮经济类的同学写了个小工具,利用了postman抓包和一些文本处理:
import requests
import time
import csv
import os
class DoWithWeb():
def __init__(self, url):
self.base_url = url
self.response = None
self.Time = None
def getStrhtml(self):
strhtml = requests.get(self.base_url)
return strhtml
def getInformation(self):
#获取当前时间
t = time.time()
self.Time = t
t = int(round(t * 1000))
url = base_url + str(t)
#加入请求头
payload = {
}
headers = \
{
'Accept': '*/*',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest'}
response = requests.request("GET", url, headers=headers, data=payload)
self.response = response
return response
#写到excel里面
def WriteToCSV(self,ExcelSave_path):
csvname = time.strftime("%Y-%m-%d",time.localtime())
csvname = csvname + ".csv"
csvpath = os.path.join(ExcelSave_path, csvname)
#如果第一次创建excel,第一行写入信息
if not (os.path.exists(csvpath)):
file = open(csvpath, 'a+', encoding='utf-8')
csv_wirter = csv.writer(file)
csv_wirter.writerow(["Category","Call","Put"])
else:
file = open(csvpath,'a+',encoding='utf-8')
csv_wirter = csv.writer(file)
csv_wirter.writerow(["request time:" + time.asctime(time.localtime(self.Time)),"",""])
#主体数据写入
str = self.response.text
# 仅保留纯数据
str = str.split('Put')[1]
num = 1
end_num = str.count('\n')
for num in range(end_num):
if(num == 0):
continue
row_str = str.split('\n')[num]
csv_wirter.writerow([row_str.split(',')[0], row_str.split(',')[1], row_str.split(',')[2]])
if __name__ == "__main__":
#你要保存的Excel的位置,记得要改
Excel_Save_Path = "D:/PS"
base_url = "你要的外链"
doWeb = DoWithWeb(base_url)
#计数器模块
cnt = 0
# 总共请求的次数
end_tims = 50
while(cnt < end_tims):
cnt = cnt + 1
response = doWeb.getInformation();
print(response.text)
doWeb.WriteToCSV(Excel_Save_Path)
#5秒刷新一次网页
time.sleep(5)
print(f"now is {cnt}times \n")