为什么 JSoup 在我的代码中随机出现超时?
Why is JSoup timing out at random places in my code?
我目前正尝试在 Java 中使用 JSoup 为我正在从事的棒球编码项目抓取 retrosheets.org。
我在我的代码中执行了多个 JSoup 连接,其中一些连接是在循环中完成的(因此执行了很多次)。所以,总的来说,我在我的程序中建立了数百个连接来抓取必要的数据。
该程序工作了约 5 秒,但随后挂断了一个连接(每次都不同)。然后,当我尝试在浏览器中单独访问该网站时,该网站将无法加载。是什么原因造成的?是否存在执行过多连接的问题?
这是我正在执行的连接示例(所有连接都遵循相同的格式)。
doc = Jsoup.connect("https://www.retrosheet.org/boxesetc/index.html").maxBodySize(0).userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15").get();
This is the error I am getting
这绝对是目标网站端的负载保护 - 它检测到来自同一 IP 的太多请求并阻止它一段时间或限制来自该 IP 的 connections/requests 数量。这就是为什么您也无法在浏览器中打开该网站的原因 - 这根本不是关于 JSoup 或 Java,而是关于从您的 IP 到目标网站的 connections/requests blocked/throttled。
我目前正尝试在 Java 中使用 JSoup 为我正在从事的棒球编码项目抓取 retrosheets.org。
我在我的代码中执行了多个 JSoup 连接,其中一些连接是在循环中完成的(因此执行了很多次)。所以,总的来说,我在我的程序中建立了数百个连接来抓取必要的数据。
该程序工作了约 5 秒,但随后挂断了一个连接(每次都不同)。然后,当我尝试在浏览器中单独访问该网站时,该网站将无法加载。是什么原因造成的?是否存在执行过多连接的问题?
这是我正在执行的连接示例(所有连接都遵循相同的格式)。
doc = Jsoup.connect("https://www.retrosheet.org/boxesetc/index.html").maxBodySize(0).userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15").get();
This is the error I am getting
这绝对是目标网站端的负载保护 - 它检测到来自同一 IP 的太多请求并阻止它一段时间或限制来自该 IP 的 connections/requests 数量。这就是为什么您也无法在浏览器中打开该网站的原因 - 这根本不是关于 JSoup 或 Java,而是关于从您的 IP 到目标网站的 connections/requests blocked/throttled。