如何使用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针对可疑网址做页面验证,兼顾效率和准确性:
- 用HTTP方法批量检查URL状态
- 对状态异常(重定向、5xx)或状态正常但怀疑内容异常的URL,用Selenium进一步验证页面内容
内容的提问来源于stack exchange,提问作者stack overflow
相关产品推荐
相关产品推荐

