Jsoup超时而未获取数据

时间:2018-09-04 22:23:24

标签: selenium web-scraping http-headers web-crawler jsoup

我有以下代码行可以使用jsoup来获取html文档

Document doc = Jsoup.connect("http://nomads.ncep.noaa.gov/pub/data/nccf/com/hrrr/prod/hrrr.20180904/conus/")
            .userAgent("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0")
            .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
            .header("Host", "nomads.ncep.noaa.gov")
            .timeout(10*1000)
            .get();

无论我使用什么标题,这都会超时。相同的网址:

http://nomads.ncep.noaa.gov/pub/data/nccf/com/hrrr/prod/hrrr.20180904/conus/
当我在Chrome或Firefox中打孔时,

可以完全正常工作。我在这里想念什么?预先非常感谢您提供的所有帮助。

1 个答案:

答案 0 :(得分:1)

问题是this site非常慢,平均加载需要30秒(您可以通过在浏览器中加载看到)。因此,您需要将超时时间设置为50秒左右。

这应该可以解决您的问题...

Document doc = Jsoup.connect("http://nomads.ncep.noaa.gov/pub/data/nccf/com/hrrr/prod/hrrr.20180904/conus/")
                .userAgent("Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:61.0) Gecko/20100101 Firefox/61.0")
                .header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
                .header("Host", "nomads.ncep.noaa.gov")
                .timeout(50000)
                .get();