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

Selenium Python检测网站死链如何过滤javascript:void(0)仅请求https链接

Selenium Python 死链检测问题修复方案

修改后完整代码

import requests
from selenium import webdriver

# 此处省略driver初始化代码
anchor = driver.find_elements_by_tag_name("a")

for anchors in anchor:
    href = anchors.get_attribute('href')
    # 前置过滤:排除无效链接、仅保留https开头的链接
    if not href or href == "javascript:void(0)" or not href.startswith("https://"):
        continue
    try:
        # 增加超时设置,避免请求长时间卡住
        resp = requests.head(href, timeout=5)
        # 2xx/3xx状态码视为有效链接,4xx/5xx视为死链
        if resp.status_code < 400:
            print(href, "Valid link")
        else:
            print(href, "Broken link")
    except Exception as e:
        # 捕获请求异常(超时、连接失败等)直接判定为无效链接
        print(href, "Broken link, error:", str(e))

核心修改说明

  • 新增前置过滤逻辑:先提取href属性,直接跳过空值、javascript:void(0)、非https开头的链接,避免无效请求触发报错
  • 补充异常捕获机制:处理请求过程中可能出现的超时、DNS解析失败、连接被拒绝等异常情况,避免脚本直接中断
  • 修正状态码判断逻辑:原代码只要能返回状态码就判定为有效,修改为仅状态码小于400(即正常响应/合法重定向)才判定为有效链接,符合死链检测的实际需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:54:05