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基础网络和文本处理能力抓取网页链接,但实际项目中,开发者通常会依赖更专业的库来提高效率和准确性。同时,抓取网页数据需遵守相关法律法规,尊重网站的Robots协议,避免对...
本文将详细讨论如何使用Java语言来抓取网页数据,包括两种主要方法:直接抓取原网页内容和处理网页中的JavaScript返回数据。 首先,让我们探讨**抓取原网页**的方法。在Java中,我们可以使用`java.net.URL`类来建立...
`BaiduNetDisk`类的`getUrl`方法展示了如何使用`Jsoup.connect(url).get()`来获取网页内容,并将其转换为`Document`对象。通过`indexOf`方法查找特定字符串的位置,我们可以定位到JSON数据的起始和结束位置,然后对...
### Java抓取网页图片链接地址 #### 知识点概览 本文将详细介绍如何使用Java编程语言抓取网页上的图片链接。此技术广泛应用于网络爬虫、数据分析等领域,能够帮助开发者快速获取所需的图像资源。 #### 技术背景与...
总的来说,这个Java爬虫项目专注于获取网页上的所有链接,对于初学者而言,这是一个很好的学习资源,能够帮助理解网络爬虫的工作原理和基本实现。通过深入研究和修改这个"Robot"类,可以扩展其功能,比如添加多线程...
### 使用Java快速判断网页链接是否有效 在互联网应用开发中,经常会遇到需要验证网页链接有效性的情况。例如,在爬虫程序中需要确保所抓取的链接是有效的,或者是在网站维护过程中检查外部链接的有效性等。本文将...
### Java获取网页中图片的方法与判断网页代码中是否包含有效图片 在当今互联网时代,从网页中抓取图片是常见的需求之一,特别是在数据抓取、网络爬虫或内容分析等应用中。Java作为一种广泛使用的编程语言,提供了...
在这个Java网页抓取示例中,HTTP Client库用于发起HTTP请求,获取网页内容。httpclient-4.1.2.jar和httpcore-4.2.1.jar分别是HTTP Client的核心库和基础核心组件,它们负责网络通信的部分。 在主类文件中,通常会...
本篇将重点讲解如何利用HTMLParser库在Java中抓取网页数据。 HTMLParser是Java的一个开源库,专门用于解析HTML文档,提取其中的数据。它的设计目标是简化HTML解析过程,即使面对不规范的HTML代码也能有效地处理。...
在Java编程中,生成网页快照是一项常见的任务,它主要用于数据抓取、搜索引擎优化(SEO)或者是为了离线浏览。这个任务通常涉及到网络编程、多线程和网页解析技术。以下将详细介绍如何根据给定的URL利用Java实现线程...
在Java编程领域,获取网页主信息是一项常见的任务,特别是在数据抓取、网页解析以及网络爬虫等应用场景中。本主题将深入探讨如何使用Java来提取网页的主要信息,以实现更高效的数据处理。以下是对给定标题和描述的...
- 当oldMap中所有链接都被遍历后,检查newMap是否有新链接。如果有,将newMap中的链接加入oldMap,继续遍历;如果没有,表示所有可抓取的链接已遍历完毕,爬虫结束。 这个Java爬虫程序是一个基础的网络爬虫实现,...
在这个"HTTP.rar"压缩包中,我们有一个Java项目,它专门设计用来从指定的HTTP网页中抓取并保存图片。 首先,我们需要理解HTTP协议。HTTP是一种应用层协议,基于TCP/IP通信,允许客户端(如浏览器)向服务器请求资源...
通过发送HTTP请求到服务器,获取响应数据,从而获取网页内容。 2. **HTML解析**:抓取到的网页内容通常是HTML格式,因此需要解析HTML来提取图片信息。Java提供了多种库,如Jsoup,用于解析HTML文档,找出图片链接。...
在Web开发和数据抓取领域,Java爬虫技术是实现网页自动化信息提取的重要手段。本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据...
6. **社区支持**:很多网页版的Java API还会链接到相关的论坛或社区,开发者可以在那里提问、交流,获取更多帮助。 在“JavaAPI”这个压缩包中,可能包含了完整的Java API文档,可能包括JDK(Java Development Kit...
- **HTTP请求**:使用`java.net.URL`和`URLConnection`类来发起HTTP请求并获取网页的HTML内容。 - **资源定位**:通过解析HTML文档,使用`org.htmlparser`库或其他HTML解析库来提取页面中的资源链接,如图片、样式...
Java爬虫技术是一种用于自动化获取网页内容的程序,它能够模拟人类浏览器的行为,遍历互联网上的页面,提取所需的信息。在本场景中,我们将重点讨论如何利用Java编写爬虫来抓取网页内容并下载其中的图片。 首先,...
本篇文章将聚焦于一个具体的问题:如何使用Java编程语言从网页中提取百度云链接和提取码,从而实现批量下载。 首先,我们需要理解百度云链接的工作机制。通常,百度云链接是一种指向特定文件或文件夹的共享链接,...