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 相关文章推荐
手把手教你使用DedeCms的采集的图文教程
Mar 11 PHP
PHP 抓取网页图片并且另存为的实现代码
Mar 24 PHP
检测png图片是否完整的php代码
Sep 06 PHP
php操作xml
Oct 27 PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 PHP
php常用字符串比较函数实例汇总
Nov 24 PHP
ThinkPHP数据操作方法总结
Sep 28 PHP
php中get_magic_quotes_gpc()函数说明
Feb 06 PHP
ThinkPHP 3.2.3实现页面静态化功能的方法详解
Aug 03 PHP
PHP弱类型语言中类型判断操作实例详解
Aug 10 PHP
php tpl模板引擎定义与使用示例
Aug 09 PHP
PHP实现二维数组(或多维数组)转换成一维数组的常见方法总结
Dec 04 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新手上路(四)
2006/10/09 PHP
php中curl和soap方式请求服务超时问题的解决
2018/06/11 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
另一个javascript小测验(代码集合)
2011/07/27 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
详解node.js平台下Express的session与cookie模块包的配置
2017/04/26 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
vue 组件高级用法实例详解
2018/04/11 Javascript
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
浅谈Python中用datetime包进行对时间的一些操作
2016/06/23 Python
Python 专题一 函数的基础知识
2017/03/16 Python
Python使用wxPython实现计算器
2018/01/30 Python
PyQt5每天必学之组合框
2018/04/20 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
2018/05/04 Python
Django 自定义分页器的实现代码
2019/11/24 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
什么是组件架构
2016/05/15 面试题
办公室综合文员岗位职责范本
2014/02/13 职场文书
企业总经理岗位职责
2014/02/13 职场文书
发展部经理职责规定
2014/02/22 职场文书
2019学子的答谢词范本!
2019/07/05 职场文书
js Proxy的原理详解
2021/05/25 Javascript
python ansible自动化运维工具执行流程
2021/06/24 Python