如何用php正则表达式得到网页上所有的链接

作者:enenba | 发表于:2011-12-12 00:31 | 分类:php采集

如何用php正则表达式得到网页上所有的链接,获得一个页面上的所有a标签链接

<?php$html = file_get_contents('http://www.qq.com');

preg_match_all('/<a\\s.*?href=\"([^\"]+)\"[^>]*>(.*?)<\/a>/i',$html, $arr); printf("<p>输出数据为:</p><pre>%s</pre>\n",var_export( $arr[1] ,TRUE)); ?>

此正则只可以匹配a标签中的href=“”部分,

当然bug也多,就是

1、href=无引号时,

2、链接是JS代码时,

3、是相对地址时,

4、…………

总之在自己写采集URL链接时要考虑很多因素,如果实在不想那么多,可以使用 Snoopy,Snoopy有很完整的采集链接规则。

《使用Snoopy的获取a链接规则》

上一篇: PHP过滤用户发布的信息中的危险代码   |   下一篇:常用数字类正则» 标签: 正则表达式 php采集

评论: