`

用Java的模式匹配来提取网页中所需内容

    博客分类:
  • Java
阅读更多

本篇主要以实际例子来说明一下怎么样用java的模式匹配来提取网页中你所需要的内容,比如说你需要提取一个网页中的<title></title>标签内的文字内容该如何做呢?下面我会做一个介绍。介绍之前我先说明一下此系列文章的目的。我们将会持续写一些关于webspider的技术的文章,结合的例子就是我们前一段时间做的一个入门级的爬虫,我们将来也会把这个爬虫整体的共享出来。
        好言归正传,进入今天的主题,今天要讲的内容是建立在上一篇基础上的,也就是你需要对上一篇的正则表达式有个了解,至少要能看懂,当然也要对java熟悉。   
       首先第一个是上面提到的提取<title>标签的内容。先看代码

    public synchronized String parseTitle(String context)
    {
        String result="";
        String patWhTitle="<\\s*?(title)\\s*?>[\\s\\S]*?</\\s*?(title)\\s*?>";
        String patTitle="</?\\s*?(title)\\s*?>";
        Pattern titlePattern=Pattern.compile(patWhTitle,2);
        Matcher titleMatcher=titlePattern.matcher(context);
        Pattern titlePattern2=Pattern.compile(patTitle, 2);
       
        while(titleMatcher.find())
        {
            String title=titleMatcher.group();
            Matcher titleMatcher2=titlePattern2.matcher(title);
            result+="["+titleMatcher2.replaceAll("")+"]";
        }
        return result;
    }
首先定义两个正则表达式 patWhTitle,这个是要匹配网页中所有<title>标签和标签的内容。patTitle这个正则是只匹配<title>标签。
然后编译匹配等等
本篇所要讲的和上一篇有些不同,多了一步匹配,相信大家都看出来了,这是怎么回事呢?为什么要这么做呢?我结合这个title例子大概讲一下匹配的过程,其他的也都是类似。1、从网页中匹配出所有<title>标签及其内容,e.g<title>myspace</title>。2、从匹配到的string再次匹配出标签。3、然后调用replaceall方法来把标签都替换成“”,只剩下需要的内容。

不知道我是否讲解的清楚了,再贴一个函数来练习下
    public synchronized String parseA(String context)
    {
        String result="";
        String patWhA="<[a]\\s+?[^>]*?>[^<]+?</[a]\\s*?>";
        String patA="</?\\s*?[a][\\s\\S]*?>";
        Pattern aPattern=Pattern.compile(patWhA,2);
        Matcher aMat=aPattern.matcher(context);
        Pattern aPattern2=Pattern.compile(patA,2);
        while(aMat.find())
        {
            String a=aMat.group();
            Matcher mat=aPattern2.matcher(a);
            result+="["+mat.replaceAll("")+"]";
        }
        return result;
    }
这个函数是提取超链接的内容

分享到:
评论
1 楼 xiaoqing20 2010-01-14  
流程大概明白了,就是正则不太明白。呵呵。感谢您的分享啊!
貌似你长得也不错。呵呵

相关推荐

    java抓取任何指定网页的数据

    本文主要介绍如何使用Java技术来抓取任何指定网页的数据。重点在于介绍抓取网页数据的方法、解析数据的手段,以及具体实施过程中的关键步骤。 #### 抓取网页数据的重要性 在大数据时代背景下,从互联网上抓取数据变...

    Java抓取网页图片链接地址

    本文将详细介绍如何使用Java编程语言抓取网页上的图片链接。此技术广泛应用于网络爬虫、数据分析等领域,能够帮助开发者快速获取所需的图像资源。 #### 技术背景与应用场景 在互联网时代,大量的图像资源被发布在...

    java_zhizhu.rar_java LinkFilter_抓取网页_蜘蛛_蜘蛛程序

    在IT领域,网络爬虫(Spider)是一种自动化程序,它按照预定的规则遍历互联网上的网页,抓取所需的信息。本项目"java_zhizhu.rar"提供的就是一个使用Java实现的LinkFilter蜘蛛程序,用于抓取和分析网页内容,并将其...

    java抓取网站数据

    例如,可以使用正则表达式`.+1-\d+/(\d+).+`来提取数据中的数字部分(即职位需求的数量),其中括号内的部分即为所需的数据。 ##### 2.3 请求参数分析 对于POST请求,还需要知道发送给服务器的具体参数。例如,在本...

    基于JAVA技术的网页内容智能抓取.zip

    本项目主题“基于JAVA技术的网页内容智能抓取”聚焦于利用Java进行网络爬虫的开发,旨在从互联网上自动收集和处理网页数据。下面我们将深入探讨相关知识点。 一、Java基础 1. 类与对象:Java是面向对象的语言,所有...

    正则提取网页指定部分内容程序源码

    在IT领域,正则表达式(Regular Expression)是一种强大的文本处理工具,用于...在实际开发中,理解并熟练掌握这些知识将有助于高效地从网页中提取所需信息。同时,配合构建工具如Gradle,可以更系统地组织和管理项目。

    网页爬虫工具能够抓取网页信息的软件

    网页爬虫工具是用于自动化获取互联网上大量信息的软件,它们可以遍历网页,提取所需的数据,从而帮助用户快速收集和分析网络上的信息。【标题】提到的"网页爬虫工具能够抓取网页信息的软件",正是指的这类工具在IT...

    自己动手写网络爬虫 可以抓取网页 云盘 Java代码 的内容 只要自己修改下配置即可

    本项目提供了一个基础的Java实现,帮助你理解网络爬虫的工作原理,并且可以根据自己的需求进行配置来抓取特定的网页和云盘中的内容。 在编写网络爬虫时,我们通常会涉及到以下几个关键知识点: 1. **HTTP协议**:...

    JAVA技术的网页内容智能抓取.pdf

    它可以解析复杂的网页结构,提取所需的数据。 3. **开源组件应用**:除了DOM4J和jericho,还有其他组件如commons-httpclient,用于读取WEB页面内容。此外,commons-codec和commons-logging提供加密和日志记录支持,...

    JAVA_API1.6文档(中文)

    java.awt.im 提供输入方法框架所需的类和接口。 java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供...

    网页抓取 正则表达式 前台处理json对象

    2. **正则表达式**:正则表达式(Regular Expression)是一种模式匹配语言,用于查找、替换或提取文本中的特定模式。在网页抓取后,通常需要对抓取的数据进行预处理,这时正则表达式就非常有用。它可以高效地从HTML...

    java实现的网页爬虫1.5版本聚焦爬虫抽取网页

    接着,使用HTML解析器如Jsoup,解析获取的HTML文档,提取出所需的信息,如链接、文本内容等。 聚焦爬虫的关键在于网页的选择策略。常见的策略包括基于关键词的匹配、URL模式匹配、TF-IDF算法、PageRank等。在1.5...

    网页文字抓取器

    网页文字抓取器是一种工具,主要用于从互联网上的网页中批量提取文字内容。这种工具在数据挖掘、信息分析、搜索引擎优化(SEO)等领域有着广泛的应用。它能够自动化地爬取网页,解析HTML,提取出纯文本,帮助用户...

    Java源代码根据URL获取因特网网页源文件.rar

    获取到HTML源码后,可能需要进一步解析以提取所需信息,如使用Jsoup库进行DOM解析,或使用正则表达式匹配特定内容。 以上就是从URL获取因特网网页源文件的基本步骤。在实际项目中,可能会根据需求进行各种扩展和...

    java中所需json包

    以下是对"java中所需json包"的详细说明: 1. **Jackson库**:Jackson是Java中非常流行的JSON处理库,提供了多种模块,如`jackson-databind`、`jackson-core`和`jackson-annotations`。其中,`jackson-databind`是...

    网页动态抓取

    网页动态抓取是一种技术,主要用于从互联网上获取实时更新或交互式内容,这些内容在静态抓取时可能无法获取到。这项技术对于数据分析、搜索引擎优化(SEO)、内容监控以及网络研究等多个领域都至关重要。 首先,...

    爬虫搜索,简单的搜索引擎,java爬虫,搜索引擎例子,爬虫demo,java实现互联网内容抓取,搜索引擎大揭密

    在这个"搜索引擎大揭密"中,我们将关注如何用Java实现互联网内容抓取。Java爬虫程序通常会利用HttpURLConnection或HttpClient等类库来发送HTTP请求,获取网页HTML内容。接着,使用Jsoup或BeautifulSoup等解析库解析...

    c++获取网页指定内容

    3. **HTML解析**:获取网页内容后,需要解析HTML以提取所需信息。C++中常用的HTML解析库有TinyXML、pugixml或HTML Agility Pack(通常用于.NET,但可通过C++/CLI桥接)。更常见的是使用如BeautifulSoup(Python)或...

    java操作selenium+chrome解析动态网页

    总结来说,Java结合Selenium WebDriver与Chrome浏览器可以高效地处理动态网页,模拟用户行为,解析和下载所需数据。在实际应用中,这种组合广泛用于自动化测试、网页数据抓取和分析等场景。理解并掌握这些技术,能够...

Global site tag (gtag.js) - Google Analytics