如何使用jsoup连接https网站?

问题描述 投票:0回答:1

我正在尝试使用 jsoup 连接到 https 网站。 我当前的代码如下:

try {
            page = Jsoup.connect(url).userAgent("Mozilla").get();
        } catch (IOException e) {
            throw new RuntimeException(e.getMessage());
        }

带有网址

https://research.com/conference-rankings/computer-science

我正在使用 jdk17 和 jsoup 1.17.2

为什么总是出现以下错误?

Caused by: java.lang.RuntimeException: HTTP error fetching URL. Status=403, URL=[https://research.com/conference-rankings/computer-science]

当我尝试仅使用 http 而不是 https 连接到网站时,它确实有效。但我认为保持这种状态并不是一个好主意。 另外,我来自 https://www.whatismybrowser.com/de/detect/what-is-my-user-agent/ 的正确 userAgent 并将引用者设置为 https://google.com 不起作用。 以前有人遇到过这个问题吗? 是不是ssl证书有问题?

java ssl-certificate jsoup user-agent
1个回答
0
投票

尝试使用 Java 中的 Jsoup 连接到 HTTPS 网站时,您似乎遇到了

HTTP 403 Forbidden
错误。此错误通常表明服务器理解该请求但拒绝授权。以下是一些可能的原因和解决方案:

  1. 用户代理问题:某些网站可能会阻止看似来自机器人或自动脚本的请求。即使您设置了用户代理,服务器也可能无法将其识别为合法浏览器。尝试使用与流行浏览器非常相似的不同用户代理字符串。

  2. Referrer 标头:您提到将referrer 设置为

    https://google.com
    ,但出于安全原因,某些网站可能会检查referrer 标头。尝试将引荐来源网址设置为您尝试访问的网站的主页,或者尝试不设置引荐来源网址。

  3. 处理HTTPS:由于HTTP版本可以工作,所以不太可能是SSL证书问题,特别是对于JDK17,它应该是最新的SSL标准。但是,请确保您的环境设置为信任网站的 SSL 证书。如果站点使用自签名证书或 JDK 默认信任存储无法识别的证书,您可能需要手动添加它。

  4. Cookie 和会话:某些网站需要 Cookie 或会话数据才能访问某些页面。检查网站是否设置了需要随请求一起发送的 cookie。

  5. 服务器端限制:服务器可能具有阻止某些类型的自动访问的特定规则。它可以基于 IP 地址、请求率、正在访问的特定 URL 或其他因素。

  6. 使用不同的工具进行测试:要隔离问题,请尝试使用不同的 HTTP 客户端(例如 cURL 或 Postman)访问 URL。如果这些工具也收到 403 错误,则更可能是服务器如何感知请求的问题。

这是代码的修改版本,其中包含一些建议:

try {
    Connection.Response response = Jsoup
        .connect("https://research.com/conference-rankings/computer-science")
        .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36") // Use a different user agent if necessary
        .referrer("https://research.com") // Set the referrer to the website's homepage
        .execute();

    Document page = response.parse();
    // Process the page as needed
} catch (IOException e) {
    throw new RuntimeException(e.getMessage());
}

请记住,网络抓取在合法性和道德方面可能是一个灰色地带。请始终确保尊重网站的服务条款和隐私政策。

希望有帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.