import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class WeatherTest {
/**Java通过jsoup实现网页天气数据解析
* @param args
* @throws Exception
* @throws UnsupportedEncodingException
* @throws MalformedURLException
*/
public static void main(String[] args) throws MalformedURLException, UnsupportedEncodingException, Exception {
Document doc = getURLContent("http://www.soso.com/tb.q?cid=webq.wea");
String content = doc.html();
int beginLocal = content.indexOf("<xml id=\"WeatherData\" style=\"display:none\"> ");
int endLocal = content.indexOf("</xml>");
content = content.substring(beginLocal, endLocal);
String cityStr = getXMLVarByName("<city>","</city>",content);
System.out.println("城市:"+cityStr);
String dateStr = getXMLVarByName("<date>","</date>",content);
System.out.println("日期:"+dateStr);
String todayTemperature = getXMLVarByName("<temperature>","</temperature>",content);
System.out.println("今日气温:"+todayTemperature);
String todayWeather = getXMLVarByName("<weather>","</weather>",content);
System.out.println("今日天气:"+todayWeather);
String todayWind = getXMLVarByName("<wind>","</wind>",content);
System.out.println("今日风向:"+todayWind);
}
/**
* 获取xml格式的信息
* @param name
* @param content
* @return
*/
private static String getXMLVarByName(String startStr, String endStr,String content){
String xmlData = content;
int begin = xmlData.indexOf(startStr);
int end = xmlData.indexOf(endStr);
String result=xmlData.substring(begin+startStr.length(),end);
result = result.trim();
return result;
}
/**
* 获取网页
* @param docUrl
* @return
* @throws MalformedURLException
* @throws IOException
* @throws UnsupportedEncodingException
*/
private static Document getURLContent(String docUrl) throws MalformedURLException, IOException, UnsupportedEncodingException {
Document doc = Jsoup.connect(docUrl)
.data("query", "Java")
.userAgent("Mozilla")
.cookie("auth", "token")
.timeout(3000)
.post();
return doc;
}
}
需要jsoup的jar包,在附件上。
分享到:
相关推荐
在这个实例中,我们的目标是获取中国天气网站上的实时天气数据。Jsoup通过模拟浏览器解析HTML,提供了一种简洁的方式来定位和提取HTML元素中的数据。 在`WeatherSpiderByJsoup.java`这个文件中,我们可以预期看到...
HttpClient是Apache基金会开发的一款强大的HTTP...总的来说,HttpClient和Jsoup的结合使用,为Java开发者提供了一个强大且灵活的工具,可以方便地获取和解析网页数据,对于进行数据抓取和分析的项目来说非常实用。
本项目的核心是利用Java的Jsoup库来实现网页数据抓取,进而获取天气网站上各个城市的近七天天气信息,并将其存储到数据库中。对于初学者来说,这是一个非常实用的学习案例,有助于理解网络爬虫的基本原理和实践操作...
本项目将讲解如何使用Jsoup来抓取网页的关键信息,并将其存储到数据库中,同时实现通过IP地址查询天气并以邮件形式发送。 首先,Jsoup提供了简洁的API,使得解析HTML变得易如反掌。我们可以利用Jsoup的`connect()`...
7. **Web Scraping**:如果项目包含数据抓取部分,将学习如何使用Jsoup或其他类似库解析HTML,从网页中提取天气信息。 8. **数据库集成**:可能涉及到与数据库的交互,如MySQL、MongoDB等,用于存储和查询天气数据...
总之,通过jsoup,我们可以轻松地从网页中提取数据,这在处理HTML时非常有用。在这个实例中,我们学习了如何使用jsoup连接到天气预报网站,解析HTML并提取相关数据,最后将这些信息显示在Web应用中。
除了天气信息,Jsoup 还可以用于抓取新闻、评论、产品数据等各种网页信息。你可以将抓取的数据整合到数据库中,或者用于数据分析、自动化报告等用途。 在提供的 "Scraper-master" 压缩包中,你可能会找到源代码...
Jsoup是一个Java库,主要用于解析HTML文档,提取结构化数据,并可以执行DOM操作。而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端数据传输,因为它的语法简洁且易于人阅读和编写,...
总的来说,这个项目为Java开发者提供了一个实践获取和展示天气信息的起点,帮助他们理解和掌握网络请求、数据解析以及与第三方服务交互的技能。通过学习和应用这些方法,你可以为自己的应用增加实用的天气功能,无论...
在这个项目中,开发者可能使用了HTTP请求来获取网页内容,然后通过解析HTML或XML数据来提取天气预报信息。 【描述分析】 描述中的内容重复了四次,这可能是因为输入错误或者无额外信息提供。通常,描述部分会提供...
标题中的“天气预报收集java爬虫.zip”表明这是一个使用Java编程语言编写的爬虫程序,其目的是抓取并收集从2011年至2020年的全国各省市的详细天气数据。这个程序可能涉及了网络请求、HTML解析、数据提取、数据存储等...
“天气小偷”可能是指这个程序通过非正式或不公开的API接口抓取天气数据,因为"小偷"一词暗示了非授权的访问。然而,这并不意味着非法行为,而是指在合法范围内模拟用户请求获取信息的技术。"抓取"则指的是利用HTTP...
总结,Java网页信息采集涉及到网络请求、HTML解析、数据提取、处理和数据库交互等多个环节,通过合理运用各种工具和技巧,可以高效地完成这项任务。在实际应用中,还需要考虑异常处理、性能优化以及合法性问题,如...
Java实现的FTP连接与数据浏览程序 1个目标文件 摘要:Java源码,网络相关,FTP Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。 部分源代码摘录: ftpClient = new FtpClient(); //实例化FtpClient对象 ...
在处理返回的天气信息时,可能需要解析XML,这可以使用Java的内置DOM或SAX解析器,或者使用第三方库如Jsoup。天气信息通常包括温度、湿度、风速等,需要根据实际返回的XML结构进行解析。 在实际应用中,由于Android...
Java代码调用接口是开发过程中常见的一种操作,用于与外部服务进行数据交互。这里我们将讨论如何在Java中调用各种类型的接口,包括物流接口、电商接口、谷歌接口以及天气和其他实用接口。 首先,让我们来看看如何在...
2. **数据解析**:接收到的天气数据通常是JSON或XML格式,需要解析成Java对象以便进一步处理。Android提供了Gson库用于JSON解析,或者使用如Jsoup这样的库处理XML数据。 3. **Android架构**:源码可能采用了MVP...
在Android编程中,获取新浪天气预报数据涉及到网络请求、数据解析和处理等技术。下面将详细阐述这个过程。 首先,我们需要了解新浪天气预报的API接口。在这个案例中,URL是`...
1、仿墨迹天气的app软件 ...3、使用Jsoup框架抓取天气信息,解析json数据,展示天气信息 4、美观的界面,温和的主题颜色 5、适合于毕业生以及开发工作者参考 6、使用MVC+三层架构搭建服务端,mysql数据库存储数据信息
然后,他们可能使用`grep`、`awk`或`sed`等文本处理工具,或者更复杂的解析库如`html.parser`(Python)或`jsoup`(Java),来解析HTML文档,提取出隐藏在其中的天气数据。 天气数据可能包括温度、湿度、风速、风向...