为什么JSoup在我的代码中的随机位置超时?

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

我目前正在尝试使用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

java web-scraping connection timeout jsoup
1个回答
0
投票

这绝对是目标网站端的负载保护 - 它检测到来自同一IP的过多请求,并阻止该IP一段时间或限制来自该IP的连接/请求数量。这就是为什么你不能在浏览器中打开网站的原因 - 它根本不是关于JSoup或Java的,而是关于你的IP到目标网站被阻止/限制的连接/请求。

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