Java Jsoup天气工具
早些时候我问了一个问题,我离我的主要目标更近了,但仍然没有达到我想要的目标。我当前的代码:Java Jsoup天气工具,java,html,jsoup,Java,Html,Jsoup,早些时候我问了一个问题,我离我的主要目标更近了,但仍然没有达到我想要的目标。我当前的代码: try{ Connection formPage = Jsoup.connect("https://www.google.com/search?q=weather&oq=weather&aqs=chrome..69i57j69i61j69i60j0l3.3806j0j7&sourceid=chrome&ie=UTF-8"); formPage.timeout(
try{
Connection formPage = Jsoup.connect("https://www.google.com/search?q=weather&oq=weather&aqs=chrome..69i57j69i61j69i60j0l3.3806j0j7&sourceid=chrome&ie=UTF-8");
formPage.timeout(1000)
.method(Connection.Method.GET)
.userAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36")
.execute();
Document getformPage = formPage.get();
//Element getformPage = formPage.getElementById("wob_t");
System.out.println(getformPage.getElementById("wob_t"));
//System.out.println(formPage.request().url());
}catch(Exception exception){
System.exit(0);
}
返回一个空表达式。我希望它能反映当前的天气。任何帮助都将不胜感激。谢谢 您可以直接从
https://weather.com/en-IN/weather/today/l/18.60,73.71
其中,18.60,73.71
将是需要详细信息的位置的坐标
您可以使用选择器标签div.today\u nowcard-temp
来显示温度,也可以类似地显示其他细节
正如@r3dst0rm之前所建议的,您从尝试使用的google搜索页面检索的文档中没有详细信息
如果你需要的细节不存在,那么你必须尝试其他方法来获得你想要的结果,我建议你这样做。你传递的id是否正确,我认为应该是
getformPage.getElementById(“wob_tm”)
AFAIK,谷歌只使用JavaScript来显示。因此,JSoup几乎毫无用处。你最好调查一下Selenium@r3dst0rm你检查过谷歌提供的天气页面的页面源代码了吗,OP需要的所有细节都在里面,可以使用Jsoup轻松地删除/解析。Jsoup将阅读页面中的所有详细信息来源:)@Rishaldevsingh因为我只是想知道我们从OP的URL中得到了什么,我使用了try.Jsoup.org
,并在那里获取了给定的URL。显然没有结果HTML,因为我们会在浏览器中获取天气信息。@CalebDunham您已经用getformPage.getElementsByClass(“wob_t”)
替换了方法getformPage.getElementById(“wob_t”)
,这是一个很好的解决方案。这可能是公认的答案。获得了我的+1访问源代码,而不是从谷歌“复制”。