共计 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 检测结束!')
正文完