PHP html dom php+正则 采集文章代码

<?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就秒 还有带于进一步优化,特别是那获取文章内容时的正则,那个太恶心了
大家可以小研究一下*/
?>

时间: 2024-10-05 23:33:13

PHP html dom php+正则 采集文章代码的相关文章

PHP simple_html_dom.php+正则 采集文章代码_php技巧

复制代码 代码如下: <?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,

php采集文章中的图片获取替换到本地

本篇文章是对php采集文章中的图片获取替换到本地的实现代码进行了详细的分析介绍,需要的朋友参考下   复制代码 代码如下: /**  * 获取替换文章中的图片路径  * @param string $xstr 内容  * @param string $keyword 创建照片的文件名  * @param string $oriweb 网址  * @return string  *  */ function replaceimg($xstr,$keyword, $oriweb){     //保存

帝国cms用火车头采集文章内容分页教程

火车头采集:文章内容分页采集教程 采集文章的时候,难免遇到文章有分页,本教程讲解下内容分页的采集. 在规则的第二步:采集内容规则左下方有个"分页获取规则"选项卡,用来设置分页.如下图: 全部列出模式适用于分页地址全部显示出来如下图: 上下页上n页下n页适用用分页地址列出一部分如下图 我们先说下上下页模式的分页,以采集这个地址http://www.zzarea.com/2013/0117/1358391833627.html为例 在第一页我们查看分页代码的情况如下: 在第三页分页代码的情

一段ASP防采集的代码

采集 一段ASP防采集的代码<%        '作用:文字防复制乱码 函数        'Date:2006-3-6        '作者:blue2004        '参数str 为原文,str1作者也是你自己,reslut产生乱码的种子        Function ReadToCode(str,Str1,result)                dim name                dim i,j,k                If isnull(str) th

帝国cms 用灵动标签 读取专题文章代码

帝国cms 用灵动标签 读取专题文章代码 [e:indexloop={'select a.* from phome_ecms_movie a,phome_enewsztinfo b where a.id=b.id and a.isgood>0 and (b.ztid=2 or b.ztid=3) order by newstime desc limit 10',10,11,'','',''}] <li><p class="cover"><a href

普通用户名检测与正则用户检测代码

普通用户名检测与正则用户检测代码 function click_userName_input(thisinput) {  reguserNameinfo.className = "show exactness";  reguserNameinfo.innerHTML = "只能由中英文字母a-z(不区分大小写).数字0-9._(下划线)组成,长度为3-20个字符. "; } function check_userName_input(thisinput) {  va

php正则匹配文章中的远程图片地址并下载图片至本地_php技巧

使用php的正则表达式来实现: $content = '这里是文章内容,这里插入一张图片测试 <img src="XXXXXXXXXXXXXXXXXXXX">'; $content = stripslashes ( $content ); $img_array = array (); // 匹配所有远程图片 preg_match_all ( "/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|bmp|png

cmos图像传感器-CMOS图像传感器信号采集Verilog代码

问题描述 CMOS图像传感器信号采集Verilog代码 已经搞清楚了GC0308 CMOS图像传感器的工作原理,以及输出信号类型(RGB),现在要将其输出信号PCLK.VSYNC.HSYNC和8位输出数字信号D[7:0]通过FPGA采集并存储,存储类型不限,由于第一次做这个方向,需要一些相关代码做参考,非常感谢.请经历过的前辈给予指导,谢谢.

vbs或asp采集文章时网页编码问题_小偷/采集

'/*=========================================================================    ' * Intro       研究网页编码很长时间了,因为最近要设计一个友情链接检测的VBS脚本,而与你链接的人的页面很可能是各种编码,以前采取的方法是:如果用GB2312查不到再用UTF-8查,再找不到证明对方没有给你做链接虽然不是100%正确,但也差不多了,这两种编码用的人比较多,偶然间在收藏夹里的一个地址看到的一个思路,终于可以在