php正则抓取网页数据 phpemail正则

PHP如何正则表达式提取网页内容

如果你要div class="nav" monkey="nav"和div class="head-ad"之间的所有源码,用 preg_match 就可以,不用preg_match_all ,如果你要里面的所有的 li/li标签中的内容,可以用preg_match_all

成都创新互联公司是一家专业提供孝感企业网站建设,专注与做网站、网站设计、H5页面制作、小程序制作等业务。10年已为孝感众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。

//提取所有代码

$pattern = '/div class="nav" monkey="nav"(.+?)div class="head-ad"/is';

preg_match($pattern, $string, $match);

//$match[0] 即为div class="nav" monkey="nav"和div class="head-ad"之间的所有源码

echo $match[0];

//然后再提取li/li之间的内容

$pattern = '/li.*?(.+?)\/li/is';

preg_match_all($pattern, $match[0], $results);

$new_arr=array_unique($results[0]);

foreach($new_arr as $kkk){

echo $kkk;

}

php 正则获取网站内容

我写好了,用Dreamweaver调试过,可以匹配。

先用下面正则提取需要的代码段:

Draw Result.+?(\d{1,2})/td.+?(\d{1,2})/td.+?(\d{1,2})/td.+?(\d{1,2})/td.+?(\d{1,2})/td.+?(\d{1,2})/td

再用正则替换,把该内容中除了数字以外的代码去除:

替换成$1,$2,$3,$4,$5,$6 即可得到 4,7,8,33,36,43

php 用正则表达式提取网页内容

$str = 'li class="blackArea" data-sourcelatest-elem="item" data-tvid="694641300" data-vid="7b0b59d2ef0cb1152368ca9be9a4ae76" data-idx="4" data-sourcelatest-month="" data-delegate="videoPlayList"

p class="video_position video_rb"span class="v_name" rseat="xj_ty3"第2017-06-08期/span/p

h3 a title="微体兔新版馋嘴小面" href="javascript:void(0);" rseat="xj_vn3"微体兔新版馋嘴小面/a /h3

/li';

$pattern = "/[\s\S]*li[^]+data-tvid[=\"\']+([^\"\']*)[\"\'][^]*data-vid[=\"\']+([^\"\']*)[\"\'][\s\S]*/i";

$tvid = preg_replace($pattern, "$1", $str);

$vid = preg_replace($pattern, "$2", $str);

$reg = "/[\s\S]*p[^]*((?:(?!\/p)[\s\S])*)\/p[\s\S]*/i";

$p = preg_replace($reg, "$1", $str);

$reg = "/[\s\S]*h3[^]*((?:(?!\/h3)[\s\S])*)\/h3[\s\S]*/i";

$h3 = preg_replace($reg, "$1", $str);

echo $tvid."\n".$vid."\n".$p."\n".$h3;

php正则表达式怎么抓取网页数据

会用正则就会抓取。

不会正则,一时半会也教不错。

不过,推荐你使用phpQuery这个框架,用jQuery的使用器来抓取数据。


网站标题:php正则抓取网页数据 phpemail正则
网页链接:http://pwwzsj.com/article/ddopcij.html