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

Jsoup爬虫 demo

 
阅读更多
pom.xml文件添加下面的内容
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>webContent</groupId>
  <artifactId>com.xly.webContent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
      <repositories>  
        <repository>  
            <id>com.springsource.repository.bundles.release</id>  
            <name>EBR Spring Release Repository</name>  
            <url>http:// repository.springsource.com/maven/bundles/release</url>  
        </repository>  
        <repository>  
            <id>com.springsource.repository.bundles.external</id>  
            <name>EBR External Release Repository</name>  
            <url>http:// repository.springsource.com/maven/bundles/external</url>  
        </repository>  
    </repositories> 
       <properties>  
        <org.springframework.version>3.0.5.RELEASE</org.springframework.version>  
    </properties>
	<dependencies>
		<dependency>
			<!-- jsoup HTML parser library @ http://jsoup.org/ -->
			<groupId>org.jsoup</groupId>
			<artifactId>jsoup</artifactId>
			<version>1.5.2</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${org.springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.6.1</version>
		</dependency>

	</dependencies>
</project>


处理逻辑
package com.xly.jsoup;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Attributes;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.xly.jsoup.bean.WebInfoBean;
/**
 * 
 * 
 * @author Kaikai
 * @version $Id: WebContentMain.java, v 0.1 2014-10-26 上午9:49:32 Kaikai Exp $
 */
public class WebContentMain {

    public static final String BASE_URL="";

    public static final Logger log = LoggerFactory.getLogger(WebContentMain.class);

    static String base_url = "http://finance.sina.com.cn/";
    static String base_info_url="http://vip.stock.finance.sina.com.cn/corp/go.php/vCB_AllNewsStock/symbol/";//sh600158.phtml
    static String sub_div_name="artibody";
    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        getDatelistBean(base_info_url+"sh600158.phtml","datelist");
    }

    /**
     * 从doc中获取<div class="datelist">
     * 对html的处理逻辑匹配新浪财经的url结构
     * @param doc
     */
    private static void getDatelistBean(String url,String divname) throws IOException 
    {
        Document doc = Jsoup.connect(url).get();
        Elements el =  doc.select("div[class="+divname+"]");
        Elements urls =  el.select("a[href]"); 
        List<WebInfoBean> list = new ArrayList<WebInfoBean>();
        for(Element e:urls){
            WebInfoBean bean = new WebInfoBean();
            Attributes attr= e.attributes();
            bean.setUrl(attr.get("href"));
            bean.setBaseUrl(e.baseUri());
            bean.setTitle(e.childNode(0).toString());
            try {
                String[] tmp = bean.getUrl().split("/");
                int lenght = tmp.length;
                if(lenght>4)bean.setTime(tmp[lenght-2]+tmp[lenght-1].substring(0,4));
            } catch (Exception e1) {
                System.out.println(bean.getUrl());
            }
            bean.setContent(extContent(bean.getUrl(),sub_div_name));
            list.add(bean);
        }
        save(list);
        
    }	
    
  /**
     * 解析内容
     * 
     * @param url
     * @param divname
     * @return
     * @throws IOException
     */
    private static String extContent(String url,String divname) throws IOException{
        Document doc = Jsoup.connect(url).get();
        Elements el =  doc.select("div[id="+divname+"]");
        Elements ps = el.select("p");
        String infoStr = "";
        for(Element e:ps){
            infoStr=infoStr+e.text()
//                    +"\n"
                    ;
        }
        return infoStr;
    }

    private static void save(List<WebInfoBean> list){
        for(WebInfoBean bean:list){
            System.out.println(bean.toString());
        }
    }

}


bean
public class WebInfoBean {

	private String id;
	
	private String title;
	private String index;
	private String time;
	private String content;
	private String baseUrl;
	private String url;
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getIndex() {
        return index;
    }
    public void setIndex(String index) {
        this.index = index;
    }
    public String getTime() {
        return time;
    }
    public void setTime(String time) {
        this.time = time;
    }
    public String getBaseUrl() {
        return baseUrl;
    }
    public void setBaseUrl(String baseUrl) {
        this.baseUrl = baseUrl;
    }
    @Override
    public String toString() {
        return "WebInfoBean [id=" + id + ", title=" + title + ", index=" + index + ", time=" + time
               + ", content=" + content + ", baseUrl=" + baseUrl + ", url=" + url + "]";
    }
	
	
}
分享到:
评论

相关推荐

    jsoup爬虫demo

    **jsoup爬虫demo** Java中的jsoup库是一款强大的HTML解析和抓取工具,它使得在Java中处理网页内容变得简单。本示例将详细解释如何利用jsoup进行网页爬虫开发,并通过输出流将抓取的数据写入本地文件。 首先,你...

    基于jsoup的SpringBoot爬虫demo

    **基于jsoup的SpringBoot爬虫demo** 在现代互联网环境中,数据抓取是获取大量信息的重要手段,而SpringBoot作为Java领域广泛使用的轻量级框架,结合jsoup库,可以构建高效、灵活的网络爬虫应用。这个"基于jsoup的...

    httpclient + jsoup java爬虫DEMO

    java爬虫,代码写的有点丑,反正是能用。 今天给大家分享一个多线程的知识点,和线程池,最近任务是写爬虫,五百个网址,循环很慢,然后考虑用多线程,今天看了一下多线程,氛围继承thread 和实现runnuble接口,...

    jsoup-demo

    在“jsoup-demo”这个项目中,我们可以看到如何在Java中有效地运用JSoup进行网络爬虫开发。 **一、JSoup的基本使用** JSoup的核心功能包括连接到网站、解析HTML文档、查询和提取数据。以下是一些基本操作: 1. **...

    java网络爬虫demo

    在本示例中,"java网络爬虫demo" 是一个使用IntelliJ IDEA 14.0.3开发的项目,它展示了如何利用Java来构建一个简单的网络爬虫。下面将详细讨论网络爬虫的基本概念、Java网络爬虫的实现原理以及可能涉及的技术点。 1...

    java爬虫Demo

    在"java爬虫Demo"中,可能就是利用Jsoup来解析网页并获取链接。 2. HtmlUnit:这是一个无头浏览器,能够模拟真实用户的网页浏览行为,支持JavaScript执行。对于需要登录或动态加载内容的网站,HtmlUnit可以更好地...

    java网页爬虫demo

    在这个"java网页爬虫demo"中,我们重点关注的是使用Java语言实现的一个完整示例。主类是"SpiderWidth.java",这表明该程序的核心逻辑在其中。 首先,我们要理解Java爬虫的基本构成。一个简单的Java爬虫通常包括以下...

    Java 爬虫jsoup简单的demo

    最后,将Jsoup爬虫和Excel写入结合在一起: ```java public class Main { public static void main(String[] args) throws Exception { List&lt;LinkData&gt; dataList = new ArrayList(); Document doc = Jsoup....

    java爬虫的DEMO的实现

    5. **爬虫框架**:除了自己编写爬虫逻辑,还可以利用已有的爬虫框架,如WebMagic、Jsoup-Crawler等,它们提供了更便捷的API来构建和管理爬虫项目。 6. **反爬虫策略**:许多网站有反爬虫机制,如验证码、动态加载...

    网络爬虫完美demo

    在这个项目中,我们使用了`网络爬虫Demo`作为主要代码载体,它可能包含了爬虫的核心模块,如URL管理器、下载器和解析器,用于获取和处理网页内容。 Spring框架是Java开发中的基石,它提供了一个全面的编程和配置...

    jsoup多线程爬虫

    下面是一个简单的多线程jsoup爬虫框架示例: ```java import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import java.util.ArrayList; import java.util.List; import java.util.concurrent....

    java爬虫demo

    Java爬虫Demo是一种实现网络爬虫的技术实例,它利用Java编程语言来抓取并处理互联网上的数据。网络爬虫,也称为网页蜘蛛或网络机器人,是自动浏览互联网、收集信息的一种程序。它按照一定的规则(如HTML链接)遍历...

    java实现简单的爬虫小Demo

    本教程以"java实现简单的爬虫小Demo"为主题,通过Java语言来实现一个基础的网络爬虫,目标是抓取智联招聘网站上的工作数据。下面我们将深入探讨相关知识点。 首先,Java作为一种跨平台的编程语言,其丰富的库支持...

    java编写的爬虫demo

    在Java爬虫Demo中,Jsoup可能是主要的数据解析工具。 2. **HTTP请求与响应**:爬虫需要模拟浏览器发送HTTP请求到目标网站,获取响应的HTML内容。Java的HttpURLConnection或者Apache HttpClient库可以用来实现这一...

    爬虫javaDemo

    本Java爬虫Demo提供了基础的爬虫功能,便于开发者快速集成到自己的项目中,实现高效、便捷的网页抓取。 一、Java爬虫基础 1. **网络请求库**:Java爬虫首先需要能够发送HTTP请求,获取网页源代码。常用的库有...

    JsoupDemo for java

    总之,Jsoup为Java开发者提供了强大而易用的工具,用于处理HTML,无论是在爬虫项目、数据提取,还是简单的网页解析任务中,都是不可或缺的利器。通过学习和使用JsoupDemo for Java,你可以更好地理解和掌握这些功能...

    java网络爬虫实现简单Demo

    本篇将详细介绍如何利用Java构建一个基础的网络爬虫Demo。 首先,我们要了解HTTP协议。HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从万维网服务器传输超文本到本地浏览器。在Java中,我们可以...

    java使用jsoup插件进行爬虫开发

    本项目为java开发集成jsoup插件开发的爬虫demo。以爬取H3C ERG2-450W 路由器管理页面流量信息为示例。包括爬取:登录,获取流量数据,注销其他用户,推出用户功能的实现。有需要的伙伴可以用java+jsoup开发更复杂...

    crawler-jsoup-demo:使用jsoup构建爬虫程序

    本文将深入探讨如何使用Jsoup库构建一个简单的爬虫程序,以爬取寻医问药网站的医疗数据。Jsoup是一个Java库,它提供了强大的功能,可以方便地处理HTML文档,包括解析、查找和修改。通过使用Jsoup,我们可以发起HTTP...

Global site tag (gtag.js) - Google Analytics