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与SQL注入攻击[二]
Apr 17 PHP
初次接触php抽象工厂模式(Elgg)
Mar 21 PHP
PHP开发中的错误收集,不定期更新。
Feb 03 PHP
php学习之简单计算器实现代码
Jun 09 PHP
小谈php正则提取图片地址
Mar 27 PHP
PHP向浏览器输出内容的4个函数总结
Nov 17 PHP
Symfony核心类概述
Mar 17 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
Jun 07 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
Dec 24 PHP
php反射学习之依赖注入示例
Jun 14 PHP
PHP常用函数之base64图片上传功能详解
Oct 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+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
PDO实现学生管理系统
2020/03/21 PHP
使用Java实现简单的server/client回显功能的方法介绍
2013/05/03 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
Angular学习笔记之angular的$filter服务浅析
2016/11/12 Javascript
vue按需引入element Transfer 穿梭框
2017/09/30 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
使用vue-cli脚手架工具搭建vue-webpack项目
2019/01/14 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
浅析js实现网页截图的两种方式
2019/11/01 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
python实现保存网页到本地示例
2014/03/16 Python
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
python requests 使用快速入门
2017/08/31 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
Pycharm和Idea支持的vim插件的方法
2020/02/21 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
UNIX文件系统常用命令
2012/05/25 面试题
租赁意向书范本
2014/04/01 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
2015年干部教育培训工作总结
2015/05/15 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
《烈火英雄》观后感:致敬和平时代的英雄
2019/11/11 职场文书
Python基本数据类型之字符串str
2021/07/21 Python