php 文章采集正则代码


Posted in PHP onDecember 28, 2009
//采集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.***.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.***.com/learn/article/".$out[$key][1]; 
} 
//根据url获取文章内容 
foreach($article['link'] as $key=>$value){ 
$content_html = getwebcontent($article['link'][$key]); 
preg_match("/<div id=pagenum_0(.*)>[\s|\S]*?<\/div>/",$content_html,$matches); 
$article[content][$key] = $matches[0]; 
} 
//不转码还真不能保存成文件 
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]); 
} 
?>
PHP 相关文章推荐
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
Apr 17 PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 PHP
PHP-redis中文文档介绍
Feb 07 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
thinkphp中memcache的用法实例
Nov 29 PHP
php生成过去100年下拉列表的方法
Jul 20 PHP
Ajax和PHP正则表达式验证表单及验证码
Sep 24 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】
Mar 27 PHP
YII框架实现自定义第三方扩展操作示例
Apr 26 PHP
PHP array_push 数组函数
Dec 26 #PHP
PHP simple_html_dom.php+正则 采集文章代码
Dec 24 #PHP
在PHP中检查PHP文件是否有语法错误的方法
Dec 23 #PHP
php 常用类整理
Dec 23 #PHP
PHP 源代码压缩小工具
Dec 22 #PHP
php 8小时时间差的解决方法小结
Dec 22 #PHP
PHP 分页原理分析,大家可以看看
Dec 21 #PHP
You might like
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
PHP中的替代语法介绍
2015/01/09 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
JS控制表单提交的方法
2015/07/09 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
第一次接触神奇的Bootstrap
2016/10/14 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
js实现无缝滚动图
2017/02/22 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
深入理解Angular4订阅(Subscribe)与取消
2017/11/22 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
跟老齐学Python之深入变量和引用对象
2014/09/24 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
numpy.ndarray 实现对特定行或列取值
2019/12/05 Python
python实现简单俄罗斯方块
2020/03/13 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
党员2014两会学习心得体会
2014/03/17 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
文明村镇申报材料
2014/05/06 职场文书
公证委托书格式
2014/09/13 职场文书
基层干部个人对照检查及整改措施
2014/10/28 职场文书
介绍信格式
2015/01/30 职场文书
大四学生个人总结
2015/02/15 职场文书
2015年社区环境卫生工作总结
2015/04/21 职场文书
品德与社会教学反思
2016/02/24 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL
Apache自带的ab压力测试工具的实现
2022/07/23 Servers