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 相关文章推荐
文件上传的实现
Oct 09 PHP
缓存技术详谈―php
Dec 14 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
Aug 11 PHP
简单说说PHP优化那些事(经验分享)
Nov 27 PHP
smarty模板引擎之内建函数用法
Mar 30 PHP
php获取百度收录、百度热词及百度快照的方法
Apr 02 PHP
PHP中遇到的时区问题解决方法
Jul 23 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
tp5框架无刷新分页实现方法分析
Sep 26 PHP
tp5.1 框架数据库高级查询技巧实例总结
May 25 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
Jun 06 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 mcrypt可逆加密算法分析
2011/07/19 PHP
PHP生成压缩文件实例
2015/02/07 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
jquery Moblie入门—hello world的示例代码学习
2013/01/08 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
2013/01/17 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
javascript实现无缝上下滚动特效
2015/12/16 Javascript
Webwork 实现文件上传下载代码详解
2016/02/02 Javascript
jQuery文件上传控件 Uploadify 详解
2016/06/20 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
js处理包含中文的字符串实例
2017/10/11 Javascript
Vue.Draggable拖拽功能的配置使用方法
2020/07/29 Javascript
简单了解vue中的v-if和v-show的区别
2019/10/08 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
Python多线程编程(五):死锁的形成
2015/04/05 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
python使用Image处理图片常用技巧分析
2015/06/01 Python
Python多进程并发(multiprocessing)用法实例详解
2015/06/02 Python
浅谈python的dataframe与series的创建方法
2018/11/12 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
iHerb香港:维生素、补充剂和天然保健品
2017/08/01 全球购物
英国领先的汽车轮胎和快速健康中心:Kwik Fit
2017/10/29 全球购物
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
校长岗位职责
2013/11/26 职场文书
创业计划书六个要素
2013/12/26 职场文书
投资合作协议书
2014/04/17 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
购房委托书
2014/10/15 职场文书
培训讲师开场白
2015/06/01 职场文书
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python