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

使用Selenium+Java的HttpURLConnection检测链接出现403错误的原因与解决方法

为什么用HttpURLConnection验证链接返回403,手动访问却正常?

这是典型的网站反爬机制在搞事情!我帮你拆解原因和解决办法:

核心原因分析

网站会通过请求头信息判断请求是否来自正常浏览器,而你用HttpURLConnection直接发起请求时,默认没有携带浏览器的关键标识,所以被网站判定为“非人类请求”,返回403禁止访问。具体来说:

  • 缺了User-Agent:这是浏览器的身份标识,没有它网站就知道这不是正常浏览器发出的请求
  • 可能缺了Referer:有些网站会检查请求的来源页面,确保你是从站内跳转过来的
  • 没有携带Cookie:手动访问时浏览器会保存网站的会话Cookie,而HttpURLConnection是全新的连接,没有这些Cookie就过不了权限验证

解决办法:模拟浏览器请求

只需要给你的HttpURLConnection添加浏览器的请求头信息,就能绕过这个限制。修改后的代码如下:

for(int j=0;j< activelinks.size();j++) {
    String linkUrl = activelinks.get(j).getAttribute("href");
    System.out.println("Active Link address and status >>> " + linkUrl);
    
    HttpURLConnection connection = (HttpURLConnection)new URL(linkUrl).openConnection();
    
    // 1. 添加浏览器User-Agent,模拟Chrome浏览器请求
    connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36");
    // 2. 添加Referer,告诉网站请求来自当前页面(替换成你爬取链接的页面URL)
    connection.setRequestProperty("Referer", driver.getCurrentUrl());
    
    // 3. 从Selenium浏览器中获取Cookie,添加到请求头(如果需要的话)
    Set<Cookie> cookies = driver.manage().getCookies();
    StringBuilder cookieStr = new StringBuilder();
    for (Cookie cookie : cookies) {
        cookieStr.append(cookie.getName()).append("=").append(cookie.getValue()).append("; ");
    }
    if (cookieStr.length() > 0) {
        // 去掉最后多余的分号和空格
        connection.setRequestProperty("Cookie", cookieStr.substring(0, cookieStr.length() - 2));
    }
    
    connection.connect();
    String response = connection.getResponseMessage();
    int responsecode = connection.getResponseCode();
    connection.disconnect();
    
    System.out.println(linkUrl + ">>"+ response+ " " + responsecode);
}

注意事项

  1. 先试试只加User-Agent,很多情况下这就够解决问题了
  2. 如果还是403,再加上Referer和Cookie
  3. User-Agent可以根据你实际用的浏览器调整,比如Firefox、Edge的UA都可以,网上搜一下就能找到最新的
  4. 要是遇到更复杂的反爬(比如需要JS渲染),你也可以直接用Selenium打开链接来验证状态,不过这种方式会慢一些

内容的提问来源于stack exchange,提问作者Lipson T A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:24:35