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 相关文章推荐
PHP也可以?成Shell Script
Oct 09 PHP
PHP导入Excel到MySQL的方法
Apr 23 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
Jun 10 PHP
php多文件上传实现代码
Feb 20 PHP
PHP防盗链代码实例
Aug 27 PHP
smarty中js的调用方法示例
Oct 27 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
Sep 11 PHP
form自动提交实例讲解
Jul 10 PHP
PHP中PDO事务处理操作示例
May 02 PHP
php微信分享到朋友圈、QQ、朋友、微博
Feb 18 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
Thinkphp多文件上传实现方法
2014/10/31 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
PHP删除字符串中非字母数字字符方法总结
2019/01/20 PHP
一个用js实现控制台控件的代码
2007/09/04 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
浅析BootStrap模态框的使用(经典)
2016/04/29 Javascript
JS &amp; JQuery 动态添加 select option
2016/06/08 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
2016/12/22 Javascript
100多个基础常用JS函数和语法集合大全
2017/02/16 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
webpack4实现不同的导出类型
2019/04/09 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
浅谈python数据类型及类型转换
2017/12/18 Python
python3.7将代码打包成exe程序并添加图标的方法
2019/10/11 Python
浅析使用Python搭建http服务器
2019/10/27 Python
简单了解Python读取大文件代码实例
2019/12/18 Python
CSS3中利用animation属性创建雪花飘落特效
2014/05/14 HTML / CSS
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
Sarenza德国:法国最大的时尚鞋和包包网上商店
2019/06/08 全球购物
定制别致的瑜伽垫:Sugarmat
2019/06/21 全球购物
语文教研活动总结
2014/07/02 职场文书
会计工作能力自我评价
2015/03/05 职场文书
运动与健康自我评价
2015/03/09 职场文书
2015年父亲节寄语
2015/03/23 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
质量整改通知单
2015/04/21 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书