我正在尝试从此网站获取天气数据:

https://www.ilmeteo.it/meteo/Magenta/previsioni-orarie?refresh_ce

与代码:

 try {
                int i = 0;
                if (googlefirst3.startsWith("http")) {
                    Document document = Jsoup.connect("https://www.ilmeteo.it/meteo/Magenta/previsioni-orarie?refresh_ce").userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11 Firefox/19.0").timeout(0).get();
                    Elements temp = document.select("tr");

                    String verifica;
                    verifica=document.html();
                    for (Element movielist : temp) {
                        i++;
                        html = (i + "|||" + movielist.getElementsByTag("td").first().html());
                        array3b[i] = html;

                    }
                }

            } catch (IOException e) {
                e.printStackTrace();}


我正在尝试获取带有温度,风和时间数据的表行:

javascript - 从天气网站中抓取完整的html数据-LMLPHP

但我无法得到它。我得到的文档不包含此数据,并且似乎不完整。
我以为这是由javascript生成的html引起的,但即使使用此方法也是如此:

How do I get the web page contents from a WebView?

我无法得到它。我不确定javascript是问题所在。
有人至少可以帮助我找出问题的本质吗?

提前谢谢了。

最佳答案

您要解析的页面包含使用iframe包含数据的内容。

<iframe name="frmprevi" id="frmprevi"
src="https://www.ilmeteo.it/portale/meteo/previsioni1.php?citta=Magenta&amp;c=3749&amp;gm=25"
width="660" height="600" marginheight="0" marginwidth="0" scrolling="no"
frameborder="0" style="margin:0px;padding:0px"></iframe>


这就是Jsoup无法访问它的原因。要获取所需的数据,只需直接从iframe src中解析网址:
https://www.ilmeteo.it/portale/meteo/previsioni1.php?citta=Magenta&c=3749&gm=25

现在应该很容易了,但是请注意,URL中的参数gm=25可能代表一个月的25日,因此您必须相应地对其进行更改,以获取不同日期的数据。

07-24 09:45
查看更多