需求说明:使用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实现简单网页抓取的更多相关文章

  1. 【apache】使用HttpClient,进行简单网页抓取

    1 package com.lw.httpclient.test; 2 import org.apache.http.client.methods.CloseableHttpResponse; 3 i ...

  2. java网页抓取

    网页抓取就是,我们想要从别人的网站上得到我们想要的,也算是窃取了,有的网站就对这个网页抓取就做了限制,比如百度 直接进入正题 //要抓取的网页地址 String urlStr = "http ...

  3. Java实现网页抓取的一个Demo

    这个小案例的话我是存放在我的github 上. 下面给出链接自己可以去看下,也可以直接下载源码.有具体的说明 <Java网页抓取>

  4. Python实现简单的网页抓取

    现在开源的网页抓取程序有很多,各种语言应有尽有. 这里分享一下Python从零开始的网页抓取过程 第一步:安装Python 点击下载适合的版本https://www.python.org/ 我这里选择 ...

  5. Java开源网页抓取工具httpClient以及jsoup

    网上看到不错的Java网页抓取工具和库 先记录一下 使用java开源工具httpClient及jsoup抓取解析网页数据

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

    来源:http://www.ido321.com/1158.html 抓取某一个网页中的内容,需要对DOM树进行解析,找到指定节点后,再抓取我们需要的内容,过程有点繁琐.LZ总结了几种常用的.易于实现 ...

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

    CasperJS is a navigation scripting & testing utility for the PhantomJS (WebKit) and SlimerJS (Ge ...

  8. Python开发爬虫之动态网页抓取篇:爬取博客评论数据——通过Selenium模拟浏览器抓取

    区别于上篇动态网页抓取,这里介绍另一种方法,即使用浏览器渲染引擎.直接用浏览器在显示网页时解析 HTML.应用 CSS 样式并执行 JavaScript 的语句. 这个方法在爬虫过程中会打开一个浏览器 ...

  9. Python爬虫之三种网页抓取方法性能比较

    下面我们将介绍三种抓取网页数据的方法,首先是正则表达式,然后是流行的 BeautifulSoup 模块,最后是强大的 lxml 模块. 1. 正则表达式   如果你对正则表达式还不熟悉,或是需要一些提 ...

随机推荐

  1. 160629、 DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较

       简介   使用评价  项目主页  DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用 可以设置最大和最小连接,连接等 ...

  2. CoordinatorLayout Behaviors使用说明[翻译]

    翻译与:Intercepting everything with CoordinatorLayout Behaviors 使用过Android Design Support Library的小伙伴应该 ...

  3. 只有ReflectionOnlyLoadFrom才可以拯救与GAC冲突的强命名程序集

    先说结论,如果有两个拥有相同程序集名称的强命名程序集,一个在GAC里,一个不在.怎样动态加载那个不在GAC里的程序集?答案就是只有Assembly.ReflectionOnlyLoadFrom才可以加 ...

  4. 查看linux目录剩余空间大小

    df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式: df -hl   显示格式为: 文件系统 容量 已用 可用 已用% 挂载点 Filesystem S ...

  5. prometheus配置

    本文主要记录下测试环境积累的prometheus配置信息,主要是k8s基本节点的配置和cadvisor的配置,方便以后使用做为参考 global: scrape_interval: 30s scrap ...

  6. 如何理解Nginx, WSGI, Flask之间的关系

    概览 之前对 Nginx,WSGI(或者 uWSGI,uwsgi),Flask(或者 Django),这几者的关系一存存在疑惑.通过查阅了些资料,总算把它们的关系理清了. 总括来说,客户端从发送一个 ...

  7. django 表单系统 之 forms.ModelForm

    继承forms.ModelForm类实现django的表单系统 有时,我们在前端定义的<form>表单和后端定义的model结构基本上是一样的,那么我们可以直接在后端定义model后,定义 ...

  8. 简述 Python3 文件处理

    1.文件处理 找到文件 --> 打开文件 --> 操作:读.写 --> 保存 --> 关闭 1.1.1 写文件 (只要牵扯到文件操作,都是字符串:写文件的时候需要把写的数字转换 ...

  9. Nodejs关闭windows服务进程

    1.根据端口号,查询进程信息命令: netstat -aon | findstr "端口号" 2.根据pid杀死进程命令: taskkill /F /pid 进程号 完整代码: c ...

  10. 判断元素的16中方法expected_conditions

    from selenium.webdriver.support import expected_conditons as EC 1.title_is:判断当前页面的title是否完全等于预期字符串,返 ...