`
jilong-liang
  • 浏览: 480446 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类

Jsoup解析html抓取网页数据

阅读更多
package com.test;

import java.io.File;
import java.io.FileWriter;
import java.net.URL;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

/**
 *@Author:liangjilong
 *@Date:2014-8-27
 *@Email:jilongliang@sina.com
 *
 *@Descript:此程序是抓取中国合格评定国家认可委员会---获准认可机构
 */
public class TestReptile {
	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {

		String path = "D:/test/test.txt";
		File file = new File(path);
		if (!file.exists()) {
			file.createNewFile();// 不存在就创建一个..
			String newFlie = file.getPath();
			FileWriter fileWriter = new FileWriter(newFlie);
			int page = 150;// 抓取页数
			for (int i = 1; i <= page; i++) {
				String URL = getUrl(i);// 抓取第一页的内容
				System.out.println(URL);
				Document doc = Jsoup.parse(new URL(URL), 3000);
				if (doc != null) {
					Elements divtables = doc.getElementsByAttributeValue("class", "divtable");// 获取div样式class=divtable里面的html内容
					for (Element d : divtables) {
						String a_text = d.select("a").html();// 获取html里面a标签的内容
						//System.out.println(a_text);
						fileWriter.write(a_text);
						fileWriter.flush();
					}
				} else {
					System.out.println("网络异常..");
				}
			}
			fileWriter.close();
		} else {
			System.err.println("文件存在..");
		}
	}
	/**
	 * @param pageSize页数.
	 * @return
	 */
	public static String getUrl(Integer pageSize){
		String url="http://219.238.178.49/";
		StringBuffer buffer=new StringBuffer(url);
		buffer.append("Acc_Search2.asp?Class=L&page="+pageSize);
		return buffer.toString();
	}
	
}

 

 

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.regex.Pattern;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

/**
 *@Author:liangjilong
 *@Date:2014-9-9 
 */
public class Test2 {
	private static final String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式
	
	/**
	 * @param args
	 */
	public static void main(String[] args)throws Exception {
		Integer pageSize=20;
		getHtml(pageSize);
		
	}
	/**
	 * @param pageSize
	 * @throws IOException
	 */
	private static void getHtml(Integer pageSize) throws IOException {
		Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
		for (int i = 1; i <= pageSize; i++) {
			String url=getUrl(i);
			Document doc=Jsoup.connect(url).get();
			if(doc!=null){
				String fileName=doc.getElementsByAttributeValue("class", "T1").html();//抓取class=T1的内容,作为文件的名称.
				
				String path = "D:/test/"+fileName+i+".txt";//路径名/i
				
				File file = new File(path);
				FileWriter fileWriter=null;
				if (!file.exists()) {
				    file.createNewFile();// 不存在就创建一个.
					String newFlie = file.getPath();
					String htmlEl=doc.getElementsByAttributeValue("class", "clabel").html();
					String htmlStr=p_html.matcher(htmlEl).replaceAll("").replaceAll("&quot;", "");// 过滤html标签
					fileWriter = new FileWriter(newFlie);
					fileWriter.write(htmlStr);
					fileWriter.flush();
				} 
				fileWriter.close();
				
			}else{
				System.err.println("网络异常!");
			}
		}
		System.out.println("抓取完成~..");
	}

	/**
	 * @param pageSize页数.
	 */
	public static String getUrl(Integer pageSize){
		String url="http://219.238.178.49/";
		StringBuffer bufferUrl=new StringBuffer(url);
		bufferUrl.append("BaseInfo.asp?Id=");
		if(pageSize<=10){
			if(pageSize==10){
				bufferUrl.append("L000"+pageSize);
			}else{
				bufferUrl.append("L0000"+pageSize);
			}
		}else if(pageSize<=100){
			if(pageSize==100){
				bufferUrl.append("L00"+pageSize);
			}else{
				bufferUrl.append("L000"+pageSize);
			}
		}else if(pageSize<=1000){
			if(pageSize==1000){
				bufferUrl.append("L0"+pageSize);
			}else{
				bufferUrl.append("L00"+pageSize);
			}
		}
		return bufferUrl.toString();
	}
	 
}

 

分享到:
评论

相关推荐

    使用Jsoup解析html网页

    Jsoup以浏览器的方式解析HTML,使得我们可以方便地通过CSS选择器来查找和操作元素,极大地简化了这一过程。 ### Jsoup的基本概念 1. **Jsoup连接(Connection)**:使用Jsoup的第一步是建立到目标网页的连接。这...

    httpClient+jsoup 抓取网页数据

    在"网易贵金属"的例子中,你可能需要使用HttpClient发送GET请求到网易贵金属的页面,然后使用Jsoup解析返回的HTML,找到包含贵金属价格、新闻等信息的部分,从而实现数据抓取。实际操作时,可能还需要考虑登录、分页...

    java+jsoup抓取网页数据

    以下是关于如何使用Java+Jsoup抓取网页数据的详细讲解。 首先,你需要了解HTML的基础结构,因为Jsoup的工作原理是解析HTML文档并提供类似于DOM的API来操作这些文档。HTML是由标签组成的树形结构,每个标签都有属性...

    Jsoup解析html+xml

    二、Jsoup解析HTML 1. **连接并下载HTML文档**:Jsoup提供`connect()`方法连接到URL并下载HTML内容,然后使用`get()`方法获取下载的文档。 ```java Document doc = Jsoup.connect("http://example.com").get(); ...

    用jsoup抓取网页数据

    Jsoup是一个非常强大的Java库,它使得解析HTML和抓取网页数据变得简单易行。本教程将深入探讨如何使用Jsoup有效地从网页中提取信息,并最终将其转化为JSON格式,为数据分析或应用程序接口(API)提供便利。 ### 1. ...

    Android Jsoup 爬虫协议抓取网页信息

    在Android开发中,Jsoup是一个非常实用的库,它允许开发者通过Java的DOM、CSS以及类似于jQuery的方法来解析HTML文档,从而实现网络爬虫的功能。本文将深入探讨如何利用Jsoup在Android环境中抓取和处理网页信息。 ...

    用Jsoup解析html的所有jar包

    这个压缩包文件“用Jsoup解析html的所有jar包”显然是包含了使用Jsoup进行HTML解析所需的全部依赖。 首先,我们需要了解Jsoup的基本用法。Jsoup的核心功能在于它能够通过连接到一个URL或读取本地HTML文件来获取HTML...

    Http,Jsoup-网页数据抓取

    这通常涉及到构造特定的URL,可能包含登录凭据和其他必要参数,然后使用Jsoup解析返回的HTML页面,提取出所需的数据。类似地,对于茂名公交信息的抓取,开发者可能利用Http请求获取公交线路、时刻表等数据,再通过...

    httpClient+jsoup抓取网页数据实例和jar包

    // 使用Jsoup解析HTML内容 Document doc = Jsoup.parse(htmlContent); // 提取HTML中的数据,例如,获取所有的链接 Elements links = doc.select("a[href]"); for (Element link : links) { System.out....

    Jsoup解析html的示例

    - **数据抓取**:从网页抓取新闻、评论、产品信息等。 - **本地HTML解析**:处理存储在本地的HTML文件,提取有用信息。 - **动态更新UI**:根据网页内容动态更新应用的用户界面。 - **网络请求优化**:预加载和缓存...

    jsoup解析HTML

    在名为"NewSipder"的项目中,你可能正在构建一个网络爬虫,利用JSoup解析HTML内容。爬虫可能包括以下步骤: 1. **设置连接参数**:配置Jsoup连接,如超时时间、重试次数等。 2. **抓取页面**:使用`Jsoup.connect()...

    jsoup 网页信息 抓取 选择器

    jsoup能够解析HTML,执行DOM操作,并且支持CSS选择器,这些功能使得它在网页抓取和数据挖掘领域具有很高的实用性。 **网页抓取** 网页抓取,也称为网络爬虫或网页抓取,是一种技术,用于自动化地从互联网上获取...

    jsoupAPI解析html

    在Web开发中,经常需要从网页抓取数据,例如爬虫、数据提取或者自动化测试,这时就需要用到HTML解析工具。 **jsoup的核心概念** 1. **连接(Connection)**:jsoup通过`Jsoup.connect()`方法建立与目标网页的连接...

    jsoup解析html所需包1.7.3

    标题中的"jsoup解析html所需包1.7.3"表明我们将讨论的是JSoup 1.7.3版本,这个版本包含了三个关键的组件。 1. **jsoup-1.7.3.jar**:这是JSoup的核心库文件,包含了所有用于解析HTML的类和方法。开发人员在项目中...

    httpClient采集jsoup解析

    例如,如果你想要抓取一个新闻网站的最新文章标题,可以先使用HttpClient发送请求获取网页源码,再用Jsoup解析HTML,找到包含文章标题的元素: ```java CloseableHttpClient httpClient = HttpClients.create...

    Jsoup解析Html获取新闻列表

    在本文中,我们将深入探讨如何利用Jsoup解析HTML,以便获取新闻列表等网页数据。首先,让我们了解Jsoup的基本用法,然后通过实例演示如何从一个HTML页面中提取新闻列表。 1. **Jsoup简介** - Jsoup是由Jonathon ...

    java解析html抓取网站数据采集网站信息

    接下来,我们可以通过以下步骤使用Jsoup解析和抓取数据: 1. 连接到网页:使用Jsoup的`connect()`方法建立HTTP连接,获取网页内容。 ```java Document doc = Jsoup.connect("http://example.com").get(); ``` 2. ...

    安卓listview相关相关-使用jsoup异步抓取新闻数据装载listview(仿开源中国资讯列表.rar

    在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。本示例是关于如何使用Jsoup库异步抓取...学习这个示例可以帮助你理解Android中网络数据获取与UI更新的同步机制,以及如何利用Jsoup解析HTML数据。

    Android使用Jsoup技术解析HTML

    在Android开发中,我们经常需要从网页抓取数据,比如解析新闻标题、获取图片链接或者提取用户评论等。Jsoup提供了一种简单、安全且有效的方法来解析和操作HTML文档,使得开发者能够轻松地从网页中提取结构化数据。 ...

    利用jsoup解析网页

    使用jsoup解析HTML文档,可以使用`Jsoup.connect(url)`或`Jsoup.parse(htmlString)`方法。例如: ```java import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class JsoupExample { public static...

Global site tag (gtag.js) - Google Analytics