`
xudongcsharp
  • 浏览: 480361 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

HttpClient Jsoup爬取天气预报

    博客分类:
  • Java
 
阅读更多
httpclient4:http://hc.apache.org/

jsoup:http://www.open-open.com/jsoup


小程序的母的是爬取天气查询页面上海当天的天气。
爬取的目标页面是http://www.weather.com.cn/weather/101020100.shtml。
程序爬取的结果:
2012-12-06白天  晴 高温 9℃ 西北风 3-4级 夜间  晴 低温 5℃ 南风 3-4级


public static String getHtml() {
		String html = "";
		DefaultHttpClient httpclient = new DefaultHttpClient();
		// 访问的目标站点,端口和协议
		HttpHost targetHost = new HttpHost("www.weather.com.cn", 80, "http");
		// 代理的设置
		HttpHost proxy = new HttpHost("web-proxy.***.com", 8080);
		httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,
				proxy);
		// 目标地址
		HttpGet httpget = new HttpGet("/weather/101020100.shtml");
		try {
			// 执行
			HttpResponse response = httpclient.execute(targetHost, httpget);
			HttpEntity entity = response.getEntity();

			if (entity != null) {
				html = EntityUtils.toString(entity);
				// System.out.println(html);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			httpclient.getConnectionManager().shutdown();
		}
		return html;
	}



@Test
	public void getWeather() throws IOException {
		/*
		 * // 直接从字符串中输入 HTML 文档 String html =
		 * "<html><head><title> 开源中国社区 </title></head>" +
		 * "<body><p> 这里是 jsoup 项目的相关文章 </p></body></html>"; Document doc =
		 * Jsoup.parse(html);
		 * 
		 * // 从 URL 直接加载 HTML 文档 Document doc =
		 * Jsoup.connect("http://www.oschina.net/").get(); String title =
		 * doc.title();
		 * 
		 * Document doc = Jsoup.connect("http://www.oschina.net/")
		 * .data("query", "Java") // 请求参数 .userAgent("I ’ m jsoup") // 设置
		 * User-Agent .cookie("auth", "token") // 设置 cookie .timeout(3000) //
		 * 设置连接超时时间 .post(); // 使用 POST 方法访问 URL
		 */
		// 从文件中加载 HTML 文档
		/*
		 * File input = new File("C:/test.html"); Document doc =
		 * Jsoup.parse(input,"UTF-8","http://www.oschina.net/");
		 */
		/*
		 * Document doc = Jsoup.connect("http://athp.hp.com/portal/site/athp/")
		 * .get(); System.out.println("title:" + doc.title()); Elements els =
		 * doc.getElementsByTag("a"); System.out.println("\n\n\n" + els + "\n");
		 * for (Element e : els) { System.out.println(e.nodeName() + ":\t" +
		 * e.val()); }
		 */
		Document doc = Jsoup.parse(getHtml());
		Elements contents = doc.select("div.weatherYubaoBox");
		Elements trs = contents.get(0).getElementsByClass("yuBaoTable").get(0)
				.getElementsByTag("tr");

		StringBuilder sb=new StringBuilder();
		sb.append(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
		for (int i = 0; i < trs.size(); i++) {
			Element tr = trs.get(i);

			Elements tds = tr.getElementsByTag("td");
			for (int j = 0; j < tds.size(); j++) {
				Element td = tds.get(j);
				
				if(i == 0 && j == 0){
					continue;
				}
				if (i == 0 && j == 1) {
					sb.append(td.html()).append(" ");
					continue;
				}
				if (i == 1 && j == 0) {
					sb.append(td.html()).append(" ");
					continue;
				} 
				
				sb.append(td.getElementsByTag("a").get(0).text()).append(" ");
				
			}
		}
		System.out.println(sb);

	}


  • lib.rar (928.1 KB)
  • 下载次数: 18
分享到:
评论

相关推荐

    httpClient+jsoup 抓取网页数据

    实际操作时,可能还需要考虑登录、分页、动态加载等问题,这些可以通过HttpClient设置cookie和处理重定向,或者使用Jsoup的Jsoup.connect模拟JavaScript执行来解决。 总之,HttpClient和Jsoup是Java开发者进行网页...

    java httpclient jsoup爬虫

    初级爬虫

    Java爬虫Jsoup+httpclient获取动态生成的数据

    本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据。 ### Java爬虫基础 Java爬虫是指使用Java语言编写的一类程序,这些程序...

    java通过Jsoup爬取网页过程详解

    Java通过Jsoup爬取网页的过程可以分为几个关键步骤,包括导入必要的依赖、编写爬虫程序、执行网络请求以及解析网页内容。下面详细介绍这些知识点。 1. 导入依赖 为了使用Jsoup库进行网页爬取,首先需要在项目中添加...

    jsoup httpclient 爬取网页并下载google图标

    标题中的“jsoup httpclient 爬取网页并下载google图标”揭示了这个项目或教程是关于使用Java的两个著名库——Jsoup和HttpClient,来实现网页抓取并下载特定资源,这里是Google的图标。Jsoup是一个用于处理实际世界...

    java爬虫 jsoup爬取 斗图啦

    在这个项目中,我们使用了Jsoup库来实现对“斗图啦”网站的图片爬取与下载。 Jsoup是一个非常流行的Java库,专门用于处理和解析HTML文档。它的主要功能包括提取结构化数据、查找和修改DOM元素,以及模拟浏览器的...

    基于SSM+maven+httpClient+jsoup实现小说网站项目.zip

    基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+maven+httpClient+jsoup实现小说网站项目 基于SSM+...

    基于SSM+maven+httpClient+jsoup实现小说网站项目源码.zip

    基于SSM+maven+httpClient+jsoup实现小说网站项目源码.zip 基于SSM+maven+httpClient+jsoup实现小说网站项目源码.zip 基于SSM+maven+httpClient+jsoup实现小说网站项目源码.zip 基于SSM+maven+httpClient+jsoup实现...

    Spring-boot httpclient mysql爬取京东数据

    在本项目中,我们主要探讨如何使用Spring Boot集成HttpClient库来爬取京东网站的数据,并将这些数据存储到MySQL数据库中。这是一个非常适合初学者的技术实践,旨在帮助开发者了解Web爬虫的基本构建块以及如何在实际...

    针对 httpclient4.* 绕验证码获取公司信息 包括 jsoup网页信息的爬虫及htmlUnit对动态网站信息的抓取

    本主题主要关注如何使用`httpclient4.*`库来绕过验证码获取公司信息,以及结合`jsoup`解析静态网页信息和`htmlUnit`处理动态网站的抓取。以下是对这些知识点的详细说明: 1. **httpclient4.***: Apache HttpClient...

    httpClient采集jsoup解析

    总的来说,HttpClient与Jsoup的结合使用,为Java开发者提供了一套高效、灵活的数据采集解决方案。通过它们,你可以轻松地从网页中获取并处理所需信息,为数据分析、信息监控或其他相关任务提供支持。但同时也需要...

    httpclient爬取美图

    本项目主要涉及的是使用Apache HttpClient库来实现批量爬取“美图”的过程。HttpClient是Java编程语言中的一款强大且灵活的HTTP客户端,适用于执行各种HTTP操作,包括GET、POST、PUT等请求方法。下面我们将深入探讨...

    Jsoup 网络爬虫(动态ip代理,突破ip访问次数限制) 爬取全国各省市区数据

    在“Jsoup网络爬虫(动态ip代理,突破ip访问次数限制)爬取全国各省市区数据”这个项目中,我们将会深入探讨如何使用Jsoup进行网络爬虫开发,并且解决在爬虫过程中遇到的IP访问限制问题。 首先,我们需要理解Jsoup...

    爬虫:httpclient+jsoup

    本文将详细探讨使用Java中的两种库——HttpClient和Jsoup,以及它们结合使用来构建网页爬虫的方法。 HttpClient是Apache软件基金会的一个项目,提供了对HTTP协议的全面支持,包括请求/响应模型、连接管理、重定向...

    一个使用HttpClient调用天气预报接口的例程

    在这个例程中,我们将深入探讨如何利用HttpClient来调用一个天气预报接口,并解析返回的JSON数据。以下是一些关键知识点: 1. **HttpClient库**:HttpClient是Apache提供的一个开源库,它允许开发者构建HTTP客户端...

    spring boot+java +jsoup+ 爬虫

    Spring Boot + Java + Jsoup 爬虫是一个常见的技术组合,用于构建高效、简洁的网络爬虫项目。本文将深入探讨这些技术如何协同工作,以及如何利用它们来抓取和处理网页上的图片资源。 首先,Spring Boot 是一个由...

    使用Jsoup,抓取整个网站(包括图片、js、css)

    对于图片,我们使用`&lt;img&gt;`标签的`src`属性获取URL,然后使用Java的`HttpURLConnection`或第三方库如Apache HttpClient下载图片,保存到本地,并将`src`属性替换为本地路径。 对于CSS和JavaScript,情况类似。`...

Global site tag (gtag.js) - Google Analytics