`

java抓取网页中所有的链接

阅读更多
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抓取网页数据获取网页中所有的链接实例分享

    总的来说,这个实例展示了如何利用Java基础网络和文本处理能力抓取网页链接,但实际项目中,开发者通常会依赖更专业的库来提高效率和准确性。同时,抓取网页数据需遵守相关法律法规,尊重网站的Robots协议,避免对...

    Java抓取网页数据Demo

    本文将详细讨论如何使用Java语言来抓取网页数据,包括两种主要方法:直接抓取原网页内容和处理网页中的JavaScript返回数据。 首先,让我们探讨**抓取原网页**的方法。在Java中,我们可以使用`java.net.URL`类来建立...

    java获取百度网盘真实下载链接的方法

    `BaiduNetDisk`类的`getUrl`方法展示了如何使用`Jsoup.connect(url).get()`来获取网页内容,并将其转换为`Document`对象。通过`indexOf`方法查找特定字符串的位置,我们可以定位到JSON数据的起始和结束位置,然后对...

    Java抓取网页图片链接地址

    ### Java抓取网页图片链接地址 #### 知识点概览 本文将详细介绍如何使用Java编程语言抓取网页上的图片链接。此技术广泛应用于网络爬虫、数据分析等领域,能够帮助开发者快速获取所需的图像资源。 #### 技术背景与...

    Java爬虫网页上的所有链接网址.zip_java 网页爬虫_java网页爬虫_爬取所有链接_网页爬虫链接

    总的来说,这个Java爬虫项目专注于获取网页上的所有链接,对于初学者而言,这是一个很好的学习资源,能够帮助理解网络爬虫的工作原理和基本实现。通过深入研究和修改这个"Robot"类,可以扩展其功能,比如添加多线程...

    使用java快速判断网页链接是否有效

    ### 使用Java快速判断网页链接是否有效 在互联网应用开发中,经常会遇到需要验证网页链接有效性的情况。例如,在爬虫程序中需要确保所抓取的链接是有效的,或者是在网站维护过程中检查外部链接的有效性等。本文将...

    java获取网网页中出现的图片及判断网页代码中是否包含有效图片

    ### Java获取网页中图片的方法与判断网页代码中是否包含有效图片 在当今互联网时代,从网页中抓取图片是常见的需求之一,特别是在数据抓取、网络爬虫或内容分析等应用中。Java作为一种广泛使用的编程语言,提供了...

    java网页抓取demo

    在这个Java网页抓取示例中,HTTP Client库用于发起HTTP请求,获取网页内容。httpclient-4.1.2.jar和httpcore-4.2.1.jar分别是HTTP Client的核心库和基础核心组件,它们负责网络通信的部分。 在主类文件中,通常会...

    java利用htmlparser抓取网页数据

    本篇将重点讲解如何利用HTMLParser库在Java中抓取网页数据。 HTMLParser是Java的一个开源库,专门用于解析HTML文档,提取其中的数据。它的设计目标是简化HTML解析过程,即使面对不规范的HTML代码也能有效地处理。...

    JAVA线程根据给定URL生成网页快照

    在Java编程中,生成网页快照是一项常见的任务,它主要用于数据抓取、搜索引擎优化(SEO)或者是为了离线浏览。这个任务通常涉及到网络编程、多线程和网页解析技术。以下将详细介绍如何根据给定的URL利用Java实现线程...

    java获取网页主信息之五:测试

    在Java编程领域,获取网页主信息是一项常见的任务,特别是在数据抓取、网页解析以及网络爬虫等应用场景中。本主题将深入探讨如何使用Java来提取网页的主要信息,以实现更高效的数据处理。以下是对给定标题和描述的...

    Java爬虫实战抓取一个网站上的全部链接

    - 当oldMap中所有链接都被遍历后,检查newMap是否有新链接。如果有,将newMap中的链接加入oldMap,继续遍历;如果没有,表示所有可抓取的链接已遍历完毕,爬虫结束。 这个Java爬虫程序是一个基础的网络爬虫实现,...

    http.rar_HTTP网页_JAVA 获取http_html_java 获取网页_指定提取网页

    在这个"HTTP.rar"压缩包中,我们有一个Java项目,它专门设计用来从指定的HTTP网页中抓取并保存图片。 首先,我们需要理解HTTP协议。HTTP是一种应用层协议,基于TCP/IP通信,允许客户端(如浏览器)向服务器请求资源...

    java爬虫,抓取网页图片

    通过发送HTTP请求到服务器,获取响应数据,从而获取网页内容。 2. **HTML解析**:抓取到的网页内容通常是HTML格式,因此需要解析HTML来提取图片信息。Java提供了多种库,如Jsoup,用于解析HTML文档,找出图片链接。...

    Java爬虫Jsoup+httpclient获取动态生成的数据

    在Web开发和数据抓取领域,Java爬虫技术是实现网页自动化信息提取的重要手段。本文主要讲述如何利用Java编程语言中的Jsoup库和HttpClient工具包来获取和解析动态生成的数据,特别是那些通过JavaScript动态加载的数据...

    java api 网页版

    6. **社区支持**:很多网页版的Java API还会链接到相关的论坛或社区,开发者可以在那里提问、交流,获取更多帮助。 在“JavaAPI”这个压缩包中,可能包含了完整的Java API文档,可能包括JDK(Java Development Kit...

    java将网页保存成mht格式程序

    - **HTTP请求**:使用`java.net.URL`和`URLConnection`类来发起HTTP请求并获取网页的HTML内容。 - **资源定位**:通过解析HTML文档,使用`org.htmlparser`库或其他HTML解析库来提取页面中的资源链接,如图片、样式...

    java爬虫抓取网页内容,下载网站图片

    Java爬虫技术是一种用于自动化获取网页内容的程序,它能够模拟人类浏览器的行为,遍历互联网上的页面,提取所需的信息。在本场景中,我们将重点讨论如何利用Java编写爬虫来抓取网页内容并下载其中的图片。 首先,...

    提取文件中百度云链接与提取码的java源码

    本篇文章将聚焦于一个具体的问题:如何使用Java编程语言从网页中提取百度云链接和提取码,从而实现批量下载。 首先,我们需要理解百度云链接的工作机制。通常,百度云链接是一种指向特定文件或文件夹的共享链接,...

Global site tag (gtag.js) - Google Analytics