You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Selenium检查网站的可访问状态?

检查网站是否正常访问的可行方法

一、先通过HTTP请求快速预检查

不用启动浏览器,先判断网址的连通性和状态,适合批量检查或初步筛选:

  • 发送HEAD请求(比GET轻量,仅获取响应头),通过状态码判断:
    • 2xx系列(200、201等):服务器正常响应
    • 3xx系列:网址发生重定向,可跟进后对比最终URL是否符合预期
    • 4xx/5xx系列:客户端或服务器错误,大概率无法正常访问
  • 处理无http/https前缀的情况,自动补全协议再请求
  • 代码示例(Python):
import requests

def check_url_status(url):
    try:
        # 补全http/https协议
        if not url.startswith(('http://', 'https://')):
            url = f'https://{url}'
        response = requests.head(url, allow_redirects=True, timeout=10)
        if 200 <= response.status_code < 300:
            return f"网址正常,状态码: {response.status_code}"
        elif 300 <= response.status_code < 400:
            return f"网址重定向,最终地址: {response.url}"
        else:
            return f"网址无法访问,状态码: {response.status_code}"
    except requests.exceptions.RequestException as e:
        return f"访问失败: {str(e)}"

二、用Selenium做页面级验证(处理动态加载或内容异常)

如果需要验证页面实际展示内容(比如网址变更后返回空白页、404页面),结合异常捕获和内容检查:

  • 捕获加载异常:当网址不可用(DNS解析失败、连接超时),Selenium会抛出WebDriverException、TimeoutException,直接捕获判断
  • 检查页面内容:加载完成后,判断页面是否为空,或是否存在404等错误页面的特征文本/元素
  • 对比URL:如果是重定向导致的网址变更,对比当前URL和预期URL
  • 代码示例(Python + Selenium):
from selenium import webdriver
from selenium.common.exceptions import WebDriverException, TimeoutException

def check_site_with_selenium(expected_url):
    # 补全协议前缀
    if not expected_url.startswith(('http://', 'https://')):
        expected_url = f'https://{expected_url}'
    
    driver = webdriver.Chrome()
    driver.set_page_load_timeout(15)  # 设置加载超时时间
    try:
        driver.get(expected_url)
        # 检查是否重定向到其他网址
        current_url = driver.current_url
        if current_url != expected_url:
            print(f"网址已变更,当前访问地址: {current_url}")
        
        # 检查页面是否无有效内容
        page_content = driver.find_element("tag name", "body").text.strip()
        if not page_content:
            print("页面无内容显示")
        else:
            # 自定义检查错误页面特征
            if "404" in page_content or "页面不存在" in page_content:
                print("页面返回404错误")
            else:
                print("网站可正常访问且内容正常")
    except TimeoutException:
        print("页面加载超时,无法访问")
    except WebDriverException as e:
        print(f"网站无法访问: {str(e)}")
    finally:
        driver.quit()

三、两种方法结合使用

先通过HTTP请求快速筛选出有问题的网址,再用Selenium针对可疑网址做页面验证,兼顾效率和准确性:

  1. 用HTTP方法批量检查URL状态
  2. 对状态异常(重定向、5xx)或状态正常但怀疑内容异常的URL,用Selenium进一步验证页面内容

内容的提问来源于stack exchange,提问作者stack overflow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:05:37