python经济类小爬虫

帮经济类的同学写了个小工具,利用了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")

Guess you like

Origin blog.csdn.net/abyss_miracle/article/details/113284754