我爬取了一批 15K 的 url 并将它们保存为 html 文件。在第一次迭代中,我得到了 10980 的输出。在第二次迭代中,它减少到 9700。在第三次迭代中,它是 11120。
所以我检查了写入文本文件中的结果(在 catch 块中写入的提示/异常)。大多数网址失败是由于
java.net.UnknownHostException
一些 url 在第一次和第三次迭代中失败,但在第二次迭代中成功保存。
我在论坛上搜索了大多数情况下给出的原因就像
抛出表示无法确定主机的 IP 地址。
我的问题是它是如何在我的第二次迭代中成功抓取的?
请提供一些解决方案来解决 UnknownHostException 或查找主机的 IP 地址。
注意:上面的迭代是通过使用 Executor Service 的 Multithreads(300) 完成的。
我试过单线程。现在在各种迭代中输出计数没有差异。
我还使用了评论中建议的选项-Djava.net.preferIPv4Stack=true。
但我仍然得到UnknownHostException。