PHP正则表达式提取超链接及其标题

有这么一段HTML,比较不规则的,如果要提取其中的链接地址和链接名称,怎么弄?

//HTML

$str = '<a id="top8" href="http://list.MP3.baidu.com/song/A.htm?top8" class="p14" target="_top">歌曲列表</a><br><a target="_blank" id="bp" href="http://list.mp3.baidu.com/list/bangping.html" class="p14">中文金曲榜</a><br><td nowrap="nowrap">•&nbsp;<a id="top19" href="qingyinyue.html?top19" class="p14" target="_top">轻音乐</a></td>';

利用正则表达式是最简单的,其它的办法,偶米去想。。。

$pat = '/<a(.*?)href="(.*?)"(.*?)>(.*?)<\/a>/i';
preg_match_all($pat, $str, $m);

输出方法:

print_r($m[2]);
print_r($m[4]);

或者:

for($i=0;$i<count($m[2]) ;$i++ ){
echo '<li><a href="'.$_SERVER['PHP_SELF'].'?url='.$m[2][$i].'">'.$m[4][$i].'</a>';
}

显示结果是:

Array ( [0] => http://list.mp3.baidu.com/song/A.htm?top8 [1] => http://list.mp3.baidu.com/list/bangping.html [2] => qingyinyue.html?top19 ) Array ( [0] => 歌曲列表 [1] => 中文金曲榜 [2] => 轻音乐 )

于是,我们要采集某个网站的标题及链接地址方法就出来了。自己套用吧。

时间: 2024-09-10 20:45:49

PHP正则表达式提取超链接及其标题的相关文章

正则表达式提取网址、标题、图片等一例(.Net Asp Javascript/Js)的实现_正则表达式

在一些抓取.过滤等情况下, 正则表达式 regular expression 的优势是很明显的. 例如,有如下的字符串: 复制代码 代码如下: <li><a href="http://www.abcxyz.com/something/article/143.htm" title="FCKEditor高亮代码插件测试"><span class="article-date">[09/11]</span>

PHP正则表达式提取html超链接中的href地址

用php的正则表达式相关函数,实现提取html超链接<a href="地址"></a>中的地址.  代码如下 复制代码 <?php $preg='/<a .*?href="(.*?)".*?>/is'; $str ='<a href="链接1">URLNAME</a>文本段1<a href="链接2" target="_blank"&g

PHP用正则表达式提取网页链接地址

如下面代码,用正则表达式提取其中的链接地址 以下是引用片段:<div class="pic" id="s3"> <a title=list href="http://www.alixixi.com/down/" target="_blank">阿里西 西源码下载频道</a> <a href="http://js.alixixi.com/" target="

python使用正则表达式提取网页URL的方法

  本文实例讲述了python使用正则表达式提取网页URL的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 import re import urllib url="http://www.3lian.net" s=urllib.urlopen(url).read() ss=s.replace(" ","") urls=re.findall(r"<a.*?href=.*?</a&g

PHP中使用正则表达式提取中文实现笔记

这篇文章主要介绍了PHP中使用正则表达式提取中文实现笔记,本文还讲解了韩文.日文的正则表达式,并同时给出实现代码和使用示例,需要的朋友可以参考下     最近老板叫做一个数据查重的小练习,涉及从一个包含中文字段的文件中提取出其中的中文字段并存储,使用php开发.中间涉及到php正则表达式中文匹配的问题,网上搜罗一大片,但是也很乱没有一个准信儿,经过自己的代码的修改和检验,先将extract函数写下. 首先要注意到的是,双字节字符的编码问题,这里我们以后还可能会遇到像韩文.日文等编码问题,与中文理

php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符

 PHP使用正则表达式提取字符串中尖括号<>.小括号().中括号[].大括号{}中的字符示例,需要的朋友可以参考下    代码如下: $str="你好<我>(爱)[北京]{天安门}";    echo f1($str); //返回你好  echo f2($str); //返回我  echo f3($str); //返回爱  echo f4($str); //返回北京  echo f5($str); //返回天安门    function f1($str)  { 

基于Python正则表达式提取搜索结果中的站点地址

正则表达式对于Python来说并不是独有的,最近在把google搜索的结果中所有的站点地址导出,于是想到用python正则表达式提取搜索结果中的站点地址. 这其中涉及几个需要解决的问题: 1.获取搜索的结果文本 为了获得更多的地址,我使用了Google的高级搜索功能,每个页面显示100条结果. 获得显示的结果后,可以查看源码,并保持成文本文件就有了搜索的结果文本 2.分析如何提取站点信息 首先需要分析获取的页面,查看以怎样的方式可以提取出站点信息. 我使用IE8自带的开发工具(按F12就会弹出来

html-怎样用正则表达式提取HTM中的部分数据

问题描述 怎样用正则表达式提取HTM中的部分数据 怎样用正则表达式从一个Html 中提取一些想要的数据,正则表达式该写在哪里呢 解决方案 /<(.*)>.*</1>/ "<(.*)>.*</1>" 匹配一个 HTML 标记. 解决方案二: 你是用什么语言,想提取什么标签内的内容 解决方案三: 问这种问题应该给出示例的html代码片断,以及你希望提取的数据,还有你用的编程语言,才好帮助到你. 你什么都不说,只能给你一个泛泛的解答了:在goo

pdf-Python 提取PDF多级标题

问题描述 Python 提取PDF多级标题 请问如何用Python提取PDF文本的多级标题?有合适的库吗?PythonMiner有没有这个功能呢? 解决方案 PDFMiner可以做到,但是前提是pdf中有书签和大纲,否则就要自己判断哪些文字是标题了. 解决方案二: https://blog.scraperwiki.com/2013/07/pdftables-a-python-library-for-getting-tables-out-of-pdf-files/