当前位置: 首页 > 图文教程 > 网络编程 > PHP > php 文章采集正则代码

PHP
Zend Framework 入门:快速上手
Zend Framework 入门:多国语言支持
Zend Framework 入门:错误处理
Zend Framework 入门:页面布局
PHP会话:session 时间设定使用入门
PHP实例:PHP创建动态图像
PHP正则表达式的几则使用技巧
ASP.NET比拼PHP,谁是速度之王?
ImageTTFText函数实现图像加文字水印
整合Discuz用户登陆代码
smarty笔记--模板参数
如何正确理解 PHP 的错误信息
Web技术进阶—PHP构建网站
C/S、B/S软件技术上的比较
apache with ssl安装
如何实现给定日期的若干天以后的日期(有点类似VB中的DateAdd)
如何在PHP中判断某个函数是否被支持
在Linux下安装PHP,APACHE,MYSQL,PERL的方法
Whois 的PHP代码
将数据库的内容读到二维数组并按指定列输出

PHP 中的 php 文章采集正则代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 214 ::
收藏到网摘: n/a

php 文章采集代码主要是应用了正则表达式。
复制代码 代码如下:

//采集html
function getwebcontent($url){
$ch = curl_init();
$timeout = 10;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
$contents = trim(curl_exec($ch));
curl_close($ch);
return $contents;
}

//获得标题和url
$string =
getwebcontent('http://www.***.com/learn/zhunbeihuaiyun/jijibeiyun/2');
//正则匹配<li>获取标题和地址
preg_match_all ("/<li><a href=\"\/learn\/article\/(.*)\">(.*)<\/a>/",$string, $out, PREG_SET_ORDER);
foreach($out as $key => $value){
$article['title'][] = $out[$key][2];
$article['link'][] = "http://www.***.com/learn/article/".$out[$key][1];
}
//根据url获取文章内容
foreach($article['link'] as $key=>$value){
$content_html = getwebcontent($article['link'][$key]);
preg_match("/<div id=pagenum_0(.*)>[\s|\S]*?<\/div>/",$content_html,$matches);
$article[content][$key] = $matches[0];
}
//不转码还真不能保存成文件
foreach($article[title] as $key=>$value){
$article[title][$key] = iconv('utf-8', 'gbk', $value);//转码
}
//存入文件
$num = count($article['title']);
for($i=0; $i<$num; $i++){
file_put_contents("{$article[title][$i]}.txt", $article['content'][$i]);
}
?>