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

使用Java HtmlUnit爬取Parimatch网站返回AccessDenied错误如何解决

错误原因
  • 请求头未模拟真实浏览器:你当前使用WebClient发起的请求默认携带的是爬虫特征的请求标识,网站的Web应用防火墙识别到非浏览器请求后,直接拦截返回AccessDenied错误。
  • 错误关闭了JavaScript支持:该站点的页面内容完全依赖前端JavaScript动态渲染生成,且部分反爬验证逻辑需要JS执行通过才会返回正常内容,关闭JS支持后既无法通过校验,也无法拿到渲染后的完整内容。
  • IP区域限制:这类博彩站点普遍配置了区域访问限制,如果你发起请求的IP不在站点允许访问的区域范围内,也会直接返回拒绝访问提示。
修复方案

首先调整WebClient的配置,模拟真实浏览器的请求特征,代码修改示例如下:

public static void main(String[] args) throws IOException {
    String url = "https://parimatch.com";
    WebClient webclient = new WebClient();
    // 配置真实浏览器的请求头
    webclient.addRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36");
    webclient.addRequestHeader("Accept-Language", "zh-CN,zh;q=0.9,en;q=0.8");
    webclient.addRequestHeader("Referer", "https://www.google.com");
    // 开启JavaScript支持,关闭不必要的错误抛出
    webclient.getOptions().setJavaScriptEnabled(true);
    webclient.getOptions().setCssEnabled(false);
    webclient.getOptions().setThrowExceptionOnScriptError(false);
    webclient.getOptions().setThrowExceptionOnFailingStatusCode(false);
    // 等待3秒让JS完成页面渲染
    webclient.waitForBackgroundJavaScript(3000);

    HtmlPage page = webclient.getPage(url);
    System.out.println(page.asText());
}
  • 如果调整配置后仍然返回拒绝访问,可尝试使用符合站点访问区域要求的代理IP发起请求。
  • 重要提示:博彩类网站在中国大陆属于非法运营站点,请勿对该类站点开展任何爬取、访问操作,避免违反相关法律法规。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 06:27:00