有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Jsoup连接错误403和503

一段时间以来,我一直在使用JsoupConnect方法获取某些网站的DOM(制作我的个人机器人,每天向这些网站发出20-30个请求)。也就是说,我可以打开并浏览该网站,但我的java程序无法访问该网站。从今天起,我注意到的一个变化是CloudFlare正在检查我的浏览器(防止DDoS攻击)。我的连接代码如下所示

doc = Jsoup.connect(url)
                .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
                .referrer("http://www.google.com")
                .timeout(0)
                .get();

现在我得到错误503。我尝试将userAgent更改为仅“Mozzila/5.0”,然后出现错误403。对我来说没有任何意义,但我怀疑Cloudflare系统

编辑:

我发现CloudFlare保护“我受到攻击”要求浏览器打开JavaScript和cookie,并在5秒钟后授予对网站的访问权。如何用Java程序重现这种情况


共 (1) 个答案

  1. # 1 楼答案

    每个网站都有其限制,以避免崩溃或攻击。当我想访问github数据时,这种情况就会发生。我在你的代码中没有看到任何身份验证(你可以隐藏它,我可以理解)。有时,他们会给你更高的访问限制和更高的频率。所以尝试给予认证是好的

    另一个问题是将超时设置为0。 ConnectionTimeout=0 是不好的,让它合理一些,比如30秒