php 文章采集正则代码

yipeiwu_com7年前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]);
}
?>

相关文章

php搜索文件程序分享

php搜索文件程序分享

对于本地,我们可以利用windows自带的查找去进行查找,但是对于线上的话,如查找ftp空间里面文件,本程序是很有用的。 php文件查找器源码: <html> <...

在smarty中调用php内置函数的方法

相信有很多朋友还不知道,可以在smarty模板里调用php的内置函数,我们一起来看看它的用法。 模板书写: {'param1'|functionName:'param2':'param3...

php基于登陆时间判断实现一天多次登录只积分一次功能示例

本文实例讲述了php基于登陆时间判断实现一天多次登录只积分一次功能。分享给大家供大家参考,具体如下: 在网上找了很多的案例,感觉都差不多,有的还比较的繁琐,就自己尝试了一下,如何实现这个...

php魔术变量用法实例详解

本文实例讲述了php魔术变量用法,其中__DIR__是php5.3新增的,分享给大家供大家参考。具体用法分析如下: 系统常量 __FILE__ 当前文件名 __LINE__ 当前行数 _...

PHP 登录记住密码实现思路

form页面 复制代码 代码如下: <form action="login.php" method="post"> 用户名<input type="text" name...