python批量获取网站状态码

2,109次阅读
没有评论

共计 1180 个字符,预计需要花费 3 分钟才能阅读完成。

需求背景,因为我们有几千个二级域名站点,需要检测网站是否还能正常访问,
所以使用 python 进行了一次性的检测!
注意:
1,检测的结果的快慢以及准确性以电脑性能和网络好坏为标准。
准备网站的 url,文本文件 getbojurl_file.txt
格式内容为 (一行一个项目) 如
项目 网站 url

搜索引擎 A    https://www.baidu.com
搜索引擎 b    https://www.bing.com

检测代码如下
代码说明需要自己安装多线程 threading 的包 requests 的包
output/getbojurl_file.txt 为检测的 url 列表
output/getbojurlendlock_file.txt 为检测的输出结果

# -*- coding: utf-8 -*-
import threading
import requests
import time

def check_url(url, name, lock):
    try:
        response = requests.get(url, timeout=20)
        status_code = response.status_code
        if status_code >= 400:
            print(name, url, status_code)
            with lock:
                with open('output/getbojurlendlock_file.txt', 'a+', encoding='utf-8') as f:
                    f.write('{}\t{}\t 状态码:{}\n'.format(name, url, status_code))
                    f.write('')
    except requests.exceptions.RequestException as e:
        print(name, url, e)
        with lock:
            with open('output/getbojurlendlock_file.txt', 'a+', encoding='utf-8') as f:
                f.write('{}\t{}\t 异常状态{}\n'.format(name, url, e))
                f.write('')

with open('output/getbojurl_file.txt', 'r' ,encoding='utf-8') as file:
    lines = file.readlines()
    threads = []
    lock = threading.Lock()
    for line in lines:
        time.sleep(0.5)
        values = line.strip().split()
        url = values[1]
        name = values[0]
        t = threading.Thread(target=check_url, args=(url, name, lock))
        threads.append(t)
        t.start()

    for t in threads:
        t.join()

print('所有 URL 检测结束!')

微信扫描下方的二维码阅读本文

正文完
 0
yx
版权声明:本站原创文章,由 yx 于2023-06-12发表,共计1180字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码

bttech

文章搜索
一言一句话
-「
随机文章
ubuntu20安装部署comfyui脚本

ubuntu20安装部署comfyui脚本

基础环境参考上一篇文章安装基本的驱动 这个使用的曲线较高,有一定的学习成本。脚本如下直接使用即可! 微信扫描下...
k8s安装chatwoot后配置邮件报超时问题

k8s安装chatwoot后配置邮件报超时问题

k8s 安装好 chathoot 后配置好了邮件的相关变量 官方配置示例 SMTP_ADDRESS: ""SM...
ubuntu20 TeslaT4 安装stable diffusion-webui

ubuntu20 TeslaT4 安装stable diffusion-webui

升级系统 执行 nvidia-smi 查看是否安装了相关驱动 如果执行 nvidia-smi 没有相关命令就需...
MacBook Pro M4 关闭swap

MacBook Pro M4 关闭swap

Swap 是将磁盘虚拟为内存来用的,所以速度肯定比不上扎扎实实的内存的。我是 16G 内存,对于我平时使用完全...
降本增效之-自建k8s监控体系

降本增效之-自建k8s监控体系

使用阿里云 ack, 如果使用阿里云的监控体系一个月是需要几百块钱的监控费用,为了节约这笔费用。使用开源的 p...