【问题标题】:Jsoup timeouts without fetching dataJsoup 超时不取数据
【发布时间】:2018-09-04 22:23:23
【问题描述】:

我有以下代码行来使用 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 中打孔时,它工作得很好。我在这里想念什么?非常感谢您的所有帮助。

【问题讨论】:

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


    【解决方案1】:

    问题是,this site 很慢,平均加载需要 30 秒(可以通过浏览器加载查看)。所以你需要把 timeout 设置在 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();
    

    【讨论】:

    • 谢谢@gaurav。幸运的是,当我尝试不同的值以使其发挥作用时,我发现了相同的结果!
    猜你喜欢
    • 2011-09-28
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多