以下是一个Python脚本,可以检查整个网站的死链:

import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse, urljoin

# 设置要检查的网站
url = "https://example.com"

# 保存检查过的链接
checked_links = set()

# 保存检查过的页面
checked_pages = set()

# 检查链接是否为有效的URL
def is_valid_url(url):
    try:
        result = urlparse(url)
        return all([result.scheme, result.netloc])
    except ValueError:
        return False

# 获取页面的所有链接
def get_links(url):
    try:
        response = requests.get(url)
        soup = BeautifulSoup(response.content, "html.parser")
        links = set()
        for link in soup.find_all("a"):
            href = link.attrs.get("href")
            if href and is_valid_url(href):
                links.add(href)
        return links
    except Exception:
        return set()

# 检查链接是否为死链
def is_dead_link(url):
    try:
        response = requests.head(url, allow_redirects=True)
        return response.status_code >= 400
    except Exception:
        return True

# 检查所有页面的链接
def check_links(url):
    # 如果已经检查过该页面,跳过
    if url in checked_pages:
        return
    checked_pages.add(url)
    # 获取页面的所有链接
    links = get_links(url)
    # 检查每个链接是否为死链
    for link in links:
        if link not in checked_links:
            checked_links.add(link)
            if is_dead_link(link):
                print("Dead link: ", link)
            else:
                check_links(link)

# 开始检查
check_links(url)

使用该脚本需要安装 requestsbeautifulsoup4 模块。可以使用以下命令进行安装:

pip install requests beautifulsoup4

该脚本会输出所有死链的链接。注意,该脚本可能会检查网站的所有页面,因此可能需要一些时间才能完成

写一个PYthon 能检查整站死链的完整代码

原文地址: https://www.cveoy.top/t/topic/hvEI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录