PHP simple_html_dom.php+正则 采集文章代码


Posted in PHP onDecember 24, 2009
<?php 
//包含PHP Simple html Dom 类库文件 
include_once('./simplehtmldom/simple_html_dom.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.babytree.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.babytree.com/learn/article/".$out[$key][1]; 
} 
//根据url获取文章内容 
foreach($article['link'] as $key=>$value){ 
$html = file_get_html($value); 
$div = $html->find('div[id=pagenum_0]'); 
$article[content][] = $div[0]->innertext; 
} 
//标题转码---真正用的时候不用这步--因为咱本来就要用utf8的 
//不转码还真不能保存成文件 
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]); 
} 
/*本来想12点之前发的。。但小看一下都3点半了。。。 就算昨天的吧 
本来获取文章内容时用正则是最好的,速度也是最快的, 
奈何正则是好,但正则表达式是真难!于是乎小查了一下, 
网上也有很多人也在用PHP Simple Dom 虽然效率慢了点,但效果还是不错的 
从包含类库文件到写入txt文件 大概是7/8就秒 还有带于进一步优化,特别是那获取文章内容时的正则,那个太恶心了 
大家可以小研究一下*/ 
?>
PHP 相关文章推荐
新版mysql+apache+php Linux安装指南
Oct 09 PHP
在线竞拍系统的PHP实现框架(二)
Oct 09 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
Jul 18 PHP
PHP队列用法实例
Nov 05 PHP
CI框架中site_url()和base_url()的区别
Jan 07 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
Yii操作数据库实现动态获取表名的方法
Mar 29 PHP
php连接mysql数据库
Mar 21 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
May 23 PHP
thinkPHP5框架auth权限控制类与用法示例
Jun 12 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 PHP
在PHP中检查PHP文件是否有语法错误的方法
Dec 23 #PHP
php 常用类整理
Dec 23 #PHP
PHP 源代码压缩小工具
Dec 22 #PHP
php 8小时时间差的解决方法小结
Dec 22 #PHP
PHP 分页原理分析,大家可以看看
Dec 21 #PHP
c#中的实现php中的preg_replace
Dec 21 #PHP
php 空格,换行,跳格使用说明
Dec 18 #PHP
You might like
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
php通过各种函数判断0和空
2020/07/04 PHP
php多进程应用场景实例详解
2019/07/22 PHP
jQuery 获取URL参数的插件
2010/03/04 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
移动端日期插件Mobiscroll.js使用详解
2016/12/19 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
socket.io学习教程之基础介绍(一)
2017/04/29 Javascript
react组件从搭建脚手架到在npm发布的步骤实现
2019/01/09 Javascript
java和js实现的洗牌小程序
2019/09/30 Javascript
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
Python基本数据类型详细介绍
2014/03/11 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
python实现广度优先搜索过程解析
2019/10/19 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
python如何变换环境
2020/07/21 Python
python3判断IP地址的方法
2021/03/04 Python
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
加拿大健康、婴儿和美容产品在线购物:Well.ca
2016/11/30 全球购物
电脑教师的教学自我评价
2013/11/26 职场文书
小学生读书感言
2014/02/12 职场文书
普通党员对照检查材料
2014/08/28 职场文书
群众路线个人整改方案
2014/10/25 职场文书
企业介绍信范文
2015/01/30 职场文书
周恩来的四个昼夜观后感
2015/06/03 职场文书
寻找成龙观后感
2015/06/12 职场文书
社区志愿者服务心得体会
2016/01/22 职场文书
七年级作文之英语老师
2019/10/28 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript