Java实现简单网页抓取

需求说明:使用Java抓取网页信息,并以字符串的形式返回。

使用Java代码实现:

package net.ibuluo.spider.util;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.MalformedURLException;
import java.net.URL;

/**
 * Http工具
 * @author robin zhang
 *
 */
public class HttpUtil {

    /**
     * 根据网址抓取网页信息并将之以字符串的形式返回
     * @param urlStr
     *             网址字符串
     * @return
     * @throws MalformedURLException
     */
    public static String getUrl(String urlStr) {

        String result = null;

        try{
            URL url = new URL(urlStr);
            result = inputStream2String(url.openStream());
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return result;
    }

    /**
     * 读取字节流中的信息,并转为字符串
     * @param inputStream
     *             要读取的字节流
     * @return
     * @throws IOException
     */
    private static String inputStream2String(InputStream inputStream)
                        throws IOException{
        Reader reader = null;
        StringBuilder builder = null;
        try{
            //将字节流转为字符流
            reader = new InputStreamReader(inputStream);
            //创建字符串容器
            builder = new StringBuilder();
            //设置字符流读取长度
            char[] buffer = new char[1024];
            //记录每次读取的长度,主要是为记录最后一次读取的长度
            int offset = 0;
            while((offset=reader.read(buffer)) > 0){
                //将读取的内容转为字符串并放入builder中
                builder.append( new String(buffer, 0, offset) );
            }
            return builder.toString();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            if(null != reader){
                reader.close();
            }
        }
        return null;
    }

    public static void main(String[] args){
        System.out.println( getUrl("http://www.ibuluo.net/") );
    }
}

以上的内容可以使用一个第三方插件JSoup实现。使用jsoup实现代码如下:

    try {
            Document doc = Jsoup.connect("http://www.baidu.com/").get();
            System.out.println(doc.html());
        } catch (IOException e) {
            e.printStackTrace();
        }

Jsoup更多的用处是在实现html文档的分析上。可以参考Jsoup官方网站

时间: 2024-10-29 19:08:14

Java实现简单网页抓取的相关文章

Python3 爬虫实例(一)-- 简单网页抓取

爬虫之前 在着手写爬虫之前,要先把其需要的知识线路理清楚. 第一:了解相关Http协议知识 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本.其中最著名的就是RFC 2616.RFC 2616定

利用Java实现简单的抓取网页数据并存放于plist中

第一步:下载Firefox,安装Firebug 进入测试网站,http://lol.duowan.com/hero/,打开Firebug,在一个英雄头像上点击右键 使用Firebug查看元素, 在 <ul id="champion_list"> 一行右键点击复制HTML获得所有数据的信息. 利用Xcode创建一个lol.html文件保存代码, 打开文件发现乱码,添加编码,如图所示 第二步:打开eclipse,创建project,new class , 导入jsoup-1.7

Java实现简单地抓取开源中国主页的相关数据

代码示例 package demo0806; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection;

Java广度优先爬虫示例(抓取复旦新闻信息)

一.使用的技术 这个爬虫是近半个月前学习爬虫技术的一个小例子,比较简单,怕时间久了会忘,这里简单总结一下.主要用到的外部Jar包有HttpClient4.3.4,HtmlParser2.1,使用的开发工具(IDE)为intelij 13.1,Jar包管理工具为Maven,不习惯用intelij的同学,也可以使用eclipse新建一个项目. 二.爬虫基本知识 1.什么是网络爬虫?(爬虫的基本原理) 网络爬虫,拆开来讲,网络即指互联网,互联网就像一个蜘蛛网一样,爬虫就像是蜘蛛一样可以到处爬来爬去,把

用Python进行网页抓取

引言 从网页中提取信息的需求日益剧增,其重要性也越来越明显.每隔几周,我自己就想要到网页上提取一些信息.比如上周我们考虑建立一个有关各种数据科学在线课程的欢迎程度和意见的索引.我们不仅需要找出新的课程,还要抓取对课程的评论,对它们进行总结后建立一些衡量指标.这是一个问题或产品,其功效更多地取决于网页抓取和信息提取(数据集)的技术,而非以往我们使用的数据汇总技术. 网页信息提取的方式 从网页中提取信息有一些方法.使用API可能被认为是从网站提取信息的最佳方法.几乎所有的大型网站,像Twitter.

基于Casperjs的网页抓取技术【抓取豆瓣信息网络爬虫实战示例】

CasperJS is a navigation scripting & testing utility for the PhantomJS (WebKit) and SlimerJS (Gecko) headless browsers, written in Javascript. PhantomJS是基于WebKit内核的headless browser SlimerJS则是基于Gecko内核的headless browser Headless browser: 无界面显示的浏览器,可以用于

网页抓取:PHP实现网页爬虫方式小结

来源:http://www.ido321.com/1158.html 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐.LZ总结了几种常用的.易于实现的网页抓取方式,如果熟悉JQuery选择器,这几种框架会相当简单. 一.Ganon 项目地址: http://code.google.com/p/ganon/ 文档: http://code.google.com/p/ganon/w/list 测试:抓取我的网站首页所有class属性值是focus的

爬虫技术(四)-- 简单爬虫抓取示例(附c#代码)

这是我的第一个爬虫代码...算是一份测试版的代码.大牛大神别喷... 通过给定一个初始的地址startPiont然后对网页进行捕捉,然后通过正则表达式对网址进行匹配. List<string> todo :进行抓取的网址的集合 List<string> visited :已经访问过的网址的集合 下面实现的是,给定一个初始地址,然后进行爬虫,输出正在访问的网址和已经访问的网页的个数. 需要注意的是,下面代码实现的链接匹配页面的内容如图一.图二所示: 图一: 图二: 简单代码示范如下:

淘搜索之网页抓取系统分析与实现(2)—redis + scrapy

1.scrapy+redis使用 (1)应用 这里redis与scrapy一起,scrapy作为crawler,而redis作为scrapy的调度器.如架构图中的②所示.图1 架构图 (2)为什么选择redis redis作为调度器的实现仍然和其特性相关,可见<一淘搜索之网页抓取系统分析与实现(1)--redis使用>(http://blog.csdn.net/u012150179/article/details/38226711)中关于redis的分析. 2.redis实现scrapy sc