import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HtmlParser {
/**
* 要分析的网页
*/
String htmlUrl;
/**
* 分析结果
*/
ArrayList<String> hrefList = new ArrayList();
/**
* 网页编码方式
*/
String charSet;
public HtmlParser(String htmlUrl) {
// TODO 自动生成的构造函数存根
this.htmlUrl = htmlUrl;
}
/**
* 获取分析结果
*
* @throws IOException
*/
public ArrayList<String> getHrefList() throws IOException {
parser();
return hrefList;
}
/**
* 解析网页链接
*
* @return
* @throws IOException
*/
private void parser() throws IOException {
URL url = new URL(htmlUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
String contenttype = connection.getContentType();
charSet = getCharset(contenttype);
InputStreamReader isr = new InputStreamReader(
connection.getInputStream(), charSet);
BufferedReader br = new BufferedReader(isr);
String str = null, rs = null;
while ((str = br.readLine()) != null) {
rs = getHref(str);
if (rs != null)
hrefList.add(rs);
}
}
/**
* 获取网页编码方式
*
* @param str
*/
private String getCharset(String str) {
Pattern pattern = Pattern.compile("charset=.*");
Matcher matcher = pattern.matcher(str);
if (matcher.find())
return matcher.group(0).split("charset=")[1];
return null;
}
/**
* 从一行字符串中读取链接
*
* @return
*/
private String getHref(String str) {
Pattern pattern = Pattern.compile("<a href=.*</a>");
Matcher matcher = pattern.matcher(str);
if (matcher.find())
return matcher.group(0);
return null;
}
public static void main(String[] arg) throws IOException {
HtmlParser a = new HtmlParser("http://news.163.com/");
ArrayList<String> hrefList = a.getHrefList();
for (int i = 0; i < hrefList.size(); i++)
System.out.println(hrefList.get(i));
}
}
http://wgyblog.com/html/167.html
分享到:
相关推荐
java抓取网页数据获取网页中所有的链接实例分享,使用方法,只要实例化HtmlParser时传入网页地址就可以了
主要介绍了java获取百度网盘真实下载链接的方法,涉及java针对URL操作及页面分析的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
用来抓取网页上的 图片的超链接 你也可以适当修改 用来抓取其他连接
java获取网网页中出现的图片及判断网页代码中是否包含有效图片
java根据自定义json格式规则抓取新浪新闻、百度新闻、微博动态内容的网络爬虫源码 例子中的源码功能: 导入Hbase的jar包即可直接返回Put对象数据、可以返回map对象数据、支持自定义json格式抓取指定网页的内容、抓取...
主要介绍了JAVA使用爬虫抓取网站网页内容的方法,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧。
附件:完整源程序与可执行文件 博文链接:https://sysu-zeh.iteye.com/blog/119318
java抓取网页源码介绍 LDSpider项目为关联数据网络提供了一个网络爬行框架。 爬取关联数据网络的要求和挑战不同于常规的网络爬行,因此 LDSpider 项目提供了一个网络爬虫,适用于从关联数据网络中遍历和收集内容。 ...
java web网站常用抓取其他网站内容,很详细很经典,
java URL转PDF文件,网页内容转PDF文件
4.提取包含关键词的标题和链接:使用选择器语法 select 方法获取HTML内容中所有的链接元素,并遍历每个链接元素。然后,使用 text 方法获取链接文本,使用 absUrl 方法获取链接URL的绝对路径。如果链接文本包含用户...
主要介绍了Java中使用正则表达式获取网页中所有图片的路径,本文直接给出实例代码,需要的朋友可以参考下
使用网页读取串口电子秤的重量,使用插件方式&JS方式实现, 在网页的特定地方显示当前通过RS232链接的电子秤上的重量数据。 我的博客 java RS232串口通讯上有对此有相关方法,希望能对大家有帮助。
,从 网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网 站所有的网页都抓取完为止。如果把整个互联网当成一个...
java RS232串口通讯(电子天平数据抓取) 使用网页读取串口电子秤的重量 使用插件方式或者JS方式实现, 在网页的特定地方显示当前通过RS232链接的电子秤上的重量数据。 支持主要浏览器:Chrome,Firefox,IE8以上 我...
在这个实战博客中,我们将创建一个简单的Java网络爬虫,来演示如何从网页上抓取信息。我们将使用Java的核心库以及一些第三方库来帮助我们实现这个爬虫。 以下是本实战博客的主要内容: 项目概述 设置开发环境 创建...
请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则...
通过编写Java爬虫,我们可以从网页中提取有用的数据,如文本、图片、链接等,并将其存储或用于进一步的处理。Java爬虫的实现通常涉及以下几个关键步骤: 1. **发送请求**:使用Java的网络库向目标网页发送HTTP请求...
Htmlparser jar 包 java 实例