吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2170|回复: 55
上一主题 下一主题
收起左侧

[原创工具] 批量识别URL/链接是否有效小工具

  [复制链接]
跳转到指定楼层
楼主
first 发表于 2024-11-11 16:15 回帖奖励
批量识别URL链接可访问状态与是否有效
本人主要为分析资源类地址是否有效
使用方法:
URL复制到urls.txt
双击运行工具
完成后当前目录出现results.txt;内容为:URL@有效/无效


可自定义,代码简单

[Python] 纯文本查看 复制代码
import requests
import time
from concurrent.futures import ThreadPoolExecutor, as_completed

# 设置参数
INPUT_FILE = "urls.txt"          # 输入的URL文件
OUTPUT_FILE = "results.txt"       # 输出结果文件
MAX_THREADS = 20                  # 最大并发数
TIMEOUT = 5                       # 每个请求的超时时间(秒)
HEADERS = {                       # 自定义请求头
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"
}
PRINT_PROGRESS_EVERY = 5          # 每5条URL显示一次进度

# 检查链接是否有效
def check_url(url):
    try:
        # 使用 HEAD 请求以避免下载文件内容
        response = requests.head(url, headers=HEADERS, timeout=TIMEOUT, allow_redirects=True)

        # 检查状态码
        if response.status_code == 200:
            return f"{url}@有效"
        elif response.status_code == 404:
            return f"{url}@无效 - 路径不存在"
        else:
            return f"{url}@无效 - 状态码: {response.status_code}"
    except requests.RequestException as e:
        return f"{url}@无效 - 错误: {e}"

def main():
    # 从文件中读取URL
    with open(INPUT_FILE, "r", encoding="utf-8") as file:
        urls = [line.strip() for line in file]

    total_urls = len(urls)
    results = []
    print(f"共 {total_urls} 条 URL,开始验证...")

    # 开始计时
    start_time = time.time()

    # 并发验证URL
    with ThreadPoolExecutor(max_workers=MAX_THREADS) as executor:
        futures = {executor.submit(check_url, url): url for url in urls}

        for i, future in enumerate(as_completed(futures), start=1):
            result = future.result()
            results.append(result)

            # 进度显示
            if i % PRINT_PROGRESS_EVERY == 0 or i == total_urls:
                elapsed = time.time() - start_time
                print(f"正在执行第 {i}/{total_urls} 条 URL,用时 {elapsed:.2f} 秒")

    # 记录总用时
    total_time = time.time() - start_time

    # 将结果写入到输出文件中,确保编码为UTF-8
    with open(OUTPUT_FILE, "w", encoding="utf-8") as file:
        for result in results:
            file.write(result + "\n")

    print(f"验证完成!共执行了 {total_urls} 条链接,总用时 {total_time:.2f} 秒。结果已保存到 {OUTPUT_FILE}")
    input("按回车键退出...")

# 执行程序
main()



下载:
https://wwkj.lanzoul.com/iVkk12et953i
密码:88iq

免费评分

参与人数 12吾爱币 +13 热心值 +11 收起 理由
liugngg + 1 谢谢@Thanks!
Rain1111 + 1 我很赞同!
eulasdog + 1 我很赞同!
viconly + 1 + 1 谢谢@Thanks!
YFBAIL + 1 + 1 谢谢@Thanks!
yanglinman + 1 谢谢@Thanks!
paohu + 1 + 1 谢谢@Thanks!
jianguo123 + 1 + 1 用心讨论,共获提升!
KDCJT + 1 + 1 谢谢@Thanks!
bnbsally + 1 热心回复!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wsafya + 1 用心讨论,共获提升!多谢分享

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
persiststudy 发表于 2024-11-11 16:27
多谢楼主分享
3#
zhipeng0916 发表于 2024-11-11 16:32
4#
jOS0tQrLKD 发表于 2024-11-11 16:34
5#
lcg888 发表于 2024-11-11 16:35
不错不错 正好测试下收藏夹里的网址
6#
amorous_pp 发表于 2024-11-11 16:36
实际很多链接是301重定向,希望能处理一下
7#
yoko1987 发表于 2024-11-11 16:49
谢谢分享!
8#
foam 发表于 2024-11-11 17:55
好耶,可以检验书签啦!谢谢分享
9#
rubysn0ws 发表于 2024-11-11 18:09
工具不错,收下了
10#
lazhou 发表于 2024-11-11 18:24
谢谢大佬分享!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-23 06:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表