用正则表达式提取网页中的链接

转载 2014年11月30日 20:32:53

代码如下:

 1    /** *//** The regex for search link with the tag "a" */
 2    private final String A_REGEX = "<a.*?/a>";
 3    /** *//** The regex for search url with the tag "href" */
 4    private final String HREF_REGEX = "href=\".*?\"";
 5    /** *//** The pattern for linke with the tag "a" */
 6    private final Pattern A_PATTERN = Pattern.compile(A_REGEX);
 7    /** *//** The pattern for url with the tag "href" */
 8    private final Pattern HREF_PATTERN = Pattern.compile(HREF_REGEX);
 9    /** *//**
10     * Get url address from the url and the content of the url
11     * @param url the url need to be get links
12     * @param content the content of the given url
13     * @return a list with the url address of the links
14     */

15    public List<String> getLinkList( URL url, String content )
16    {
17        List<String> linkList = new LinkedList<String>();
18        final Matcher a_matcher = A_PATTERN.matcher(content);
19        while (a_matcher.find()) 
20        {
21            //JUST FOR TEST!
22//            System.out.println(a_matcher.group());
23            //get url address
24            final Matcher myurl = HREF_PATTERN.matcher(a_matcher.group());
25            while (myurl.find())
26            {
27                String urlAddress = myurl.group().replaceAll("href=|>|\"|\"", "");
28                if( urlAddress.startsWith("http") )
29                {
30                    linkList.add(urlAddress);
31                }

32                else if( urlAddress.startsWith("/") || urlAddress.startsWith("\\") )
33                {
34                    linkList.add(url.getPath()+urlAddress);
35                }

36                else
37                {
38                    String fullUrl = url.toString();
39                    //the length of the url without the current page
40                    int lastSlash = fullUrl.lastIndexOf("/") + 1;
41                    linkList.add(fullUrl.substring(0,lastSlash) + urlAddress);
42                }

43            }

44        }

45        return linkList;
46    }

超链接提取的正则表达式

//导入:using System.Text.RegularExpressions;//测试成功string   str   = "";             Regex   re   =   ne...

用正则表达式爬取链接和标题

1.爬取中国大数据首页的链接和标题 2.出现好多错误,特别是正则表达式#coding:utf-8 import re import urllib #获取网页 def getHtml(url): ...

正则表达式,从一个字符串中提取链接地址

写出正则表达式,从一个字符串中提取链接地址。比如下面字符串中 “IT面试题博客中包含很多 软件测试面试题 ” 则需要提取的地址为 “http://www.mianwww.com/html/...

正则表达式取HTTP链接

测试文本: 静音合肥美菱BCD-128L冷藏冷冻冰箱 双门冰箱特龙家用电冰箱 送礼    价格:888.00元    最近销售:36件   地址:http:/ w/url.cn/25GRqU ;mo...

正则表达式获取网页链接

设计目的要使获取的资源尽可能的被直接利用,以提高后续程序运行的效率。网页上的链接主要可以分为两类:1. 链接2. 图片链接 首先来分析链接,该链接基本可以分为以下四种情况:1 普通链接链接到外部网页...
  • zijuan
  • zijuan
  • 2009年04月01日 11:00
  • 8060

正则表达式入门知识+用它实现在一个网页中获取所有的链接地址

概念:正则表达式是一种计算机科学的概念、它通常用来检索和替换那些符合规则的文本或者字符串。现在很多的程序设计语言计都支持利用正则表达式来进行字符串的操作,有java、c++、python、javasc...
  • lu93it
  • lu93it
  • 2016年09月14日 08:55
  • 2089

正则表达式知识详解之实战 读取网页中超链接 (java版示例)

正则表达式知识详解系列,通过代码示例来说明正则表达式知识  源代码下载地址:http://download.csdn.net/detail/gnail_oug/9504094 ...

Python 网络爬虫 009 (编程) 通过正则表达式来获取一个网页中的所有的URL链接,并下载这些URL链接的源代码

通过 正则表达式 来获取一个网页中的所有的 URL链接,并下载这些 URL链接 的源代码使用的系统:Windows 10 64位 Python 语言版本:Python 2.7.10 V 使用的编程...

C#中使用正则表达式提取超链接地址

一般在做爬虫或者CMS的时候经常需要提取 href链接或者是src地址。此时可以使用正则表达式轻松完成。 方法一: Regex reg = new Regex(@"(?is)]*?href=(['""...

超链接正则表达式表示方法

  • 2013年09月02日 23:42
  • 221B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用正则表达式提取网页中的链接
举报原因:
原因补充:

(最多只允许输入30个字)