`

Java通过jsoup实现网页天气数据解析

    博客分类:
  • JAVA
阅读更多

 

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爬取中国天气的简单实例

    在这个实例中,我们的目标是获取中国天气网站上的实时天气数据。Jsoup通过模拟浏览器解析HTML,提供了一种简洁的方式来定位和提取HTML元素中的数据。 在`WeatherSpiderByJsoup.java`这个文件中,我们可以预期看到...

    HttpClient Jsoup爬取天气预报

    HttpClient是Apache基金会开发的一款强大的HTTP...总的来说,HttpClient和Jsoup的结合使用,为Java开发者提供了一个强大且灵活的工具,可以方便地获取和解析网页数据,对于进行数据抓取和分析的项目来说非常实用。

    jsoup爬取天气网各城市近七天天气情况存入数据库

    本项目的核心是利用Java的Jsoup库来实现网页数据抓取,进而获取天气网站上各个城市的近七天天气信息,并将其存储到数据库中。对于初学者来说,这是一个非常实用的学习案例,有助于理解网络爬虫的基本原理和实践操作...

    使用Jsoup抓取网页关键信息并入库 ip天气查询并发送邮件

    本项目将讲解如何使用Jsoup来抓取网页的关键信息,并将其存储到数据库中,同时实现通过IP地址查询天气并以邮件形式发送。 首先,Jsoup提供了简洁的API,使得解析HTML变得易如反掌。我们可以利用Jsoup的`connect()`...

    获取天气预报API,免费接口,项目下载可运行,Java实现

    7. **Web Scraping**:如果项目包含数据抓取部分,将学习如何使用Jsoup或其他类似库解析HTML,从网页中提取天气信息。 8. **数据库集成**:可能涉及到与数据库的交互,如MySQL、MongoDB等,用于存储和查询天气数据...

    jsoup操作实例源码

    总之,通过jsoup,我们可以轻松地从网页中提取数据,这在处理HTML时非常有用。在这个实例中,我们学习了如何使用jsoup连接到天气预报网站,解析HTML并提取相关数据,最后将这些信息显示在Web应用中。

    Scraper:使用 jsoup 的 Java 天气抓取工具

    除了天气信息,Jsoup 还可以用于抓取新闻、评论、产品数据等各种网页信息。你可以将抓取的数据整合到数据库中,或者用于数据分析、自动化报告等用途。 在提供的 "Scraper-master" 压缩包中,你可能会找到源代码...

    Jsoup JsonDemo

    Jsoup是一个Java库,主要用于解析HTML文档,提取结构化数据,并可以执行DOM操作。而JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端数据传输,因为它的语法简洁且易于人阅读和编写,...

    java-Weather.zip_java 天气_天气

    总的来说,这个项目为Java开发者提供了一个实践获取和展示天气信息的起点,帮助他们理解和掌握网络请求、数据解析以及与第三方服务交互的技能。通过学习和应用这些方法,你可以为自己的应用增加实用的天气功能,无论...

    jsp网页抓取天气预报源代码

    在这个项目中,开发者可能使用了HTTP请求来获取网页内容,然后通过解析HTML或XML数据来提取天气预报信息。 【描述分析】 描述中的内容重复了四次,这可能是因为输入错误或者无额外信息提供。通常,描述部分会提供...

    天气预报收集java爬虫.zip

    标题中的“天气预报收集java爬虫.zip”表明这是一个使用Java编程语言编写的爬虫程序,其目的是抓取并收集从2011年至2020年的全国各省市的详细天气数据。这个程序可能涉及了网络请求、HTML解析、数据提取、数据存储等...

    jsp 抓取天气

    “天气小偷”可能是指这个程序通过非正式或不公开的API接口抓取天气数据,因为"小偷"一词暗示了非授权的访问。然而,这并不意味着非法行为,而是指在合法范围内模拟用户请求获取信息的技术。"抓取"则指的是利用HTTP...

    java采集网页信息,并获取到所需要的信息存入数据库中对应的字段中去

    总结,Java网页信息采集涉及到网络请求、HTML解析、数据提取、处理和数据库交互等多个环节,通过合理运用各种工具和技巧,可以高效地完成这项任务。在实际应用中,还需要考虑异常处理、性能优化以及合法性问题,如...

    Android中ksoap2-android调用WebService 实现天气预报

    在处理返回的天气信息时,可能需要解析XML,这可以使用Java的内置DOM或SAX解析器,或者使用第三方库如Jsoup。天气信息通常包括温度、湿度、风速等,需要根据实际返回的XML结构进行解析。 在实际应用中,由于Android...

    java代码调用接口

    Java代码调用接口是开发过程中常见的一种操作,用于与外部服务进行数据交互。这里我们将讨论如何在Java中调用各种类型的接口,包括物流接口、电商接口、谷歌接口以及天气和其他实用接口。 首先,让我们来看看如何在...

    天气预报源码

    2. **数据解析**:接收到的天气数据通常是JSON或XML格式,需要解析成Java对象以便进一步处理。Android提供了Gson库用于JSON解析,或者使用如Jsoup这样的库处理XML数据。 3. **Android架构**:源码可能采用了MVP...

    Android编程实现获取新浪天气预报数据的方法

    在Android编程中,获取新浪天气预报数据涉及到网络请求、数据解析和处理等技术。下面将详细阐述这个过程。 首先,我们需要了解新浪天气预报的API接口。在这个案例中,URL是`...

    基于android的天气app软件

    1、仿墨迹天气的app软件 ...3、使用Jsoup框架抓取天气信息,解析json数据,展示天气信息 4、美观的界面,温和的主题颜色 5、适合于毕业生以及开发工作者参考 6、使用MVC+三层架构搭建服务端,mysql数据库存储数据信息

    scrape-kop-weather:刮除KoP的各种天气数据

    然后,他们可能使用`grep`、`awk`或`sed`等文本处理工具,或者更复杂的解析库如`html.parser`(Python)或`jsoup`(Java),来解析HTML文档,提取出隐藏在其中的天气数据。 天气数据可能包括温度、湿度、风速、风向...

    CoolWeather:帮助人们了解今天的天气

    接收到服务器响应后,项目会使用JSON或XML解析库,如Gson或Jsoup,来解析返回的天气数据。这一环节体现了Java在处理网络请求和数据解析方面的灵活性和实用性。 四、UI设计与事件处理 在用户界面设计上,...

Global site tag (gtag.js) - Google Analytics