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官方网站。
Java实现简单网页抓取的更多相关文章
- 【apache】使用HttpClient,进行简单网页抓取
1 package com.lw.httpclient.test; 2 import org.apache.http.client.methods.CloseableHttpResponse; 3 i ...
- java网页抓取
网页抓取就是,我们想要从别人的网站上得到我们想要的,也算是窃取了,有的网站就对这个网页抓取就做了限制,比如百度 直接进入正题 //要抓取的网页地址 String urlStr = "http ...
- Java实现网页抓取的一个Demo
这个小案例的话我是存放在我的github 上. 下面给出链接自己可以去看下,也可以直接下载源码.有具体的说明 <Java网页抓取>
- Python实现简单的网页抓取
现在开源的网页抓取程序有很多,各种语言应有尽有. 这里分享一下Python从零开始的网页抓取过程 第一步:安装Python 点击下载适合的版本https://www.python.org/ 我这里选择 ...
- Java开源网页抓取工具httpClient以及jsoup
网上看到不错的Java网页抓取工具和库 先记录一下 使用java开源工具httpClient及jsoup抓取解析网页数据
- 网页抓取:PHP实现网页爬虫方式小结
来源:http://www.ido321.com/1158.html 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐.LZ总结了几种常用的.易于实现 ...
- 基于Casperjs的网页抓取技术【抓取豆瓣信息网络爬虫实战示例】
CasperJS is a navigation scripting & testing utility for the PhantomJS (WebKit) and SlimerJS (Ge ...
- Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取
区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...
- Python爬虫之三种网页抓取方法性能比较
下面我们将介绍三种抓取网页数据的方法,首先是正则表达式,然后是流行的 BeautifulSoup 模块,最后是强大的 lxml 模块. 1. 正则表达式 如果你对正则表达式还不熟悉,或是需要一些提 ...
随机推荐
- svn实现共享文件夹/文件或svn文件夹/文件链接
我们在实际开发过程中,经常会遇到这种情况,多个项目组使用同一公共底层代码:公共底层代码是有专门负责人开发的,其它项目组只是使用即可,那么多个项目组就需要把公共底层代码放到各自的解决方案或目录文件下,解 ...
- Let's encrypt申请泛域名证书
1.下载工具 wget https://dl.eff.org/certbot-auto chmod a+x ./certbot-auto 2.初始化 ./certbot-auto 3.获取证书(1) ...
- Spring 框架的JDBC模板技术
1. 概述 Spring 框架提供了很多持久层的模板类来简化编程; Spring 框架提供的JDBC模板类: JdbcTemplate 类; Spring 框架提供的整合 Hibernate 框架的模 ...
- .net ASPxTreeList 使用手记
ASPxTreeList在使用ASPxGridViewExporter控件做导出时,如果指定文件名是中文时会乱码可以用以下方法解决: grvExporter为ASPxGridViewExporter控 ...
- python进程锁
import time import threading import multiprocessing lock = multiprocessing.RLock() def task(arg): pr ...
- python collection 和 heapq 模块使用说明
一 :集合库collection python 拥有一些内置的数据类型,collections模块提供啦几个额外的数据类型: 1,namedtuple 生成可以使用名字来访问元素内容的tuple子 ...
- python 作用域知识点整理
1.块级作用域 想想此时运行下面的程序会有输出吗?执行会成功吗? 1 2 3 4 5 6 7 8 9 10 11 12 #块级作用域 if 1 == 1: name = "lzl ...
- Swift学习笔记四:数组和字典
Swift 提供两种集合类型来存储集合,数组和字典. 数组是一个同类型的序列化列表集合.字典是一个能够使用相似于键的唯一标识符来获取值的非序列化集合.也就是说数组是有序的.字典是无序的. 一. 数 ...
- Github的markdwon如何使用表情符(Emoji)?表情包大全
如输入 :smile: 会输出
- oradebug工具使用3(转载)
1 oradebug介绍 oradebug主要是给oracle支持人员使用的,尽管很早便有,但oracle官网很少有记载.他是个sql*plus命令行工具,有sysdba的权限就可以登入,无需特别设置 ...