以下是一个简单的 Python 程序,可以检查整个网站中的死链。

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

# 获取页面中的所有链接
def get_links(url):
    try:
        response = requests.get(url)
        soup = BeautifulSoup(response.text, 'html.parser')
        links = [link.get('href') for link in soup.find_all('a')]
        return links
    except:
        return []

# 检查链接的有效性
def check_links(links, base_url):
    for link in links:
        if link:
            if urlparse(link).scheme in ['http', 'https']:
                url = link
            else:
                url = urljoin(base_url, link)
            try:
                response = requests.head(url)
                if response.status_code == 200:
                    print(url + ' is valid')
                else:
                    print(url + ' is invalid')
            except:
                print(url + ' is invalid')

# 主程序
if __name__ == '__main__':
    base_url = 'https://example.com'
    visited = set([base_url])
    queue = [base_url]
    while queue:
        url = queue.pop(0)
        links = get_links(url)
        check_links(links, base_url)
        for link in links:
            if link:
                if urlparse(link).scheme in ['http', 'https']:
                    url = link
                else:
                    url = urljoin(base_url, link)
                if url not in visited:
                    visited.add(url)
                    queue.append(url)

该程序使用了 requestsbeautifulsoup4 库来获取页面中的所有链接,并使用 urllib 库中的 urlparseurljoin 来解析和构建链接。程序使用队列和集合来遍历整个网站,并检查每个链接的有效性。如果链接有效,则输出'链接是有效的',否则输出'链接是无效的'。

使用步骤:

  1. 安装必要的库:pip install requests beautifulsoup4
  2. base_url 替换为要检查的网站地址
  3. 运行程序

代码解释:

  • get_links(url) 函数用于从页面中获取所有链接
  • check_links(links, base_url) 函数用于检查每个链接的有效性
  • 主程序使用队列和集合来遍历整个网站,并检查每个链接的有效性
Python 网站死链检查工具:完整代码示例

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

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