首页 > 编程语言 >python 提取日志错误请求批量重新请求

python 提取日志错误请求批量重新请求

时间:2024-08-10 22:40:32浏览次数:11  
标签:full sub python processed urls 日志 string 请求

因为有服务器线上偶发异常,所以需要获取Nginx访问日志重新请求补全数据,这时会借助python获取错误请求的URL,然后重新请求。

具体如下:

import time
import requests
from urllib.parse import urljoin
#定义一个集合用于存储已处理的URL,避免重复处理
processed_urls = set()

with open('hua.push.com.access.log', 'r') as f:
    lines = f.readlines()

for line in lines:
    if "/report/app?platform=test" in line:
        # 使用split函数定位到目标字符串后, 取其后的全部内容
        target_str = line.split('GET')[1].split(" HTTP/1.1")[0].strip()
        sub_string = "/report/app?platform=test"
        contains_sub_string = sub_string in target_str
        if contains_sub_string:
                # 发送GET请求
            full_url = 'https://hua.push.com' + target_str
            # 检查URL是否已经处理过
            if full_url not in processed_urls:
                processed_urls.add(full_url)  # 添加到集合中表示已处理
                print(target_str)
                response = requests.get(full_url)
                #延时
                time.sleep(1)

print('非重复数:')
print(len(processed_urls))

标签:full,sub,python,processed,urls,日志,string,请求
From: https://www.cnblogs.com/air-liyan/p/18352872

相关文章

  • Nginx日志切分脚本
    因为学习初期都是习惯自己去解决问题没有使用工具切分日志,所以当时写了一个根据天数日志切分脚本,现在记录下。LOG_FILE="/data/log/nginx/filter.access1.log"PROCESSED_LOG_FILE="/data/log/nginx/filter.access.log"month=$(LC_ALL=Cdate"+%b")year=$(date"+%Y")......
  • 107. 项目57:简易节日倒计时——《跟老吕学Python·新手》
    107.项目57:简易节日倒计时107.1目标开发一个简易节日倒计时程序,用户可以选择一个节日,程序将计算并显示距离该节日的天数。107.2功能用户选择一个节日。程序计算从当前日期到节日的天数。程序显示倒计时结果。107.3设计用户选择节日:用户从预设的节日列表中选择一个......
  • python-flask计算机毕业设计新冠肺炎疫情人员统计及打卡系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景自2019年底新冠肺炎疫情爆发以来,全球公共卫生体系面临了前所未有的挑战。疫情的快速传播要求各国政府及社区采取迅速且有效的防控措施,以遏......
  • python-flask计算机毕业设计胜者台球室业务信息管理系统设计与实现(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着休闲娱乐产业的蓬勃发展,台球运动作为一种集竞技性、娱乐性和社交性于一体的体育活动,受到了广大消费者的喜爱。胜者台球室作为该领域的......
  • python-flask计算机毕业设计校园生活圈综合服务系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和高等教育改革的深入,校园生活日益丰富多元,学生对便捷、高效、个性化的校园服务需求日益增长。然而,传统的校园服务......
  • yolov5 onnx部署模型代码,python版本
    `importosimportcv2importnumpyasnpimportonnxruntimeimporttimefromtqdmimporttqdmfrommatplotlibimportpyplotaspltimportmathCLASSES=['jump_cap2','jump_cap4']classYOLOV5():definit(self,onnxpath):self.onnx_se......
  • Python中yaml模块的使用教程
    一、yaml文件介绍yaml是一个专门用来写配置文件的语言。1.yaml文件规则区分大小写;使用缩进表示层级关系;使用空格键缩进,而非Tab键缩进缩进的空格数目不固定,只需要相同层级的元素左侧对齐;文件中的字符串不需要使用引号标注,但若字符串包含有特殊字符则需用引号标注;注释标识......
  • python装饰器的集中使用姿势
    在Python中,装饰器是一种十分强大并且好用的语法,一些重复的代码使用装饰器语法的话能够使代码更容易理解及阅读。因此在这里简单总结了一下Python中装饰器的几种用法以及需要注意的事情。一、在装饰器中获取被装饰函数的参数假设我们在开发web的时候,需要做反爬。要判断接口的访......
  • Python类中__del__()、__call__()、__repr__()、__new__()、__hash__()方法
    1.__del__()销毁魔术方法触发时机:当一个对象在内存中被销毁的时候自动执行参数:至少有一个self,接收对象返回值:无作用:在对象销毁的时候做一些操作注意:程序自动调用此方法,不需要我们手动调用。classCat:def__init__(self,name):print("--init--")s......
  • Python字典的高级用法
    一、collections中defaultdict的使用1.字典的键映射多个值将下面的列表转成字典l=[('a',2),('b',3),('a',1),('b',4),('a',3),('a',1),('b',3)]一个字典就是一个键对应一个单值的映射,而上面的列表中有相同键。如果你想要一个键映射多个值,那么就需要将这多个值放到另外......