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, 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-12-03 21:28:57

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

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_se

php知道与问问的采集插件代码_php技巧

最近发现知道和问问小偷的版本越来越多了!! 看过一个百度小偷的网站也达到了pr6.收录十万多!! 在经过 荐礼啦 四十天的实践之后 发现百度对这个确实挺友好的. 从网站访问来看 很多也是从百度搜索来的! 所以用知道和问问来填充网站内容还是可行的. 于是自己开发了一个知道 问问的采集插件 原则上适合 php+mysql 并且文章是在一个表的程序 知道采集代码 复制代码 代码如下: <?php session_start(); header("content-type:text/html;ch

PHP音乐采集(部分代码)_php技巧

<?PHP set_time_limit(0); mysql_connect("localhost","root",""); mysql_select_Db("music_36g"); $ip = '127.0.0.1'; function _GetIP()  {         $ip  = getenv("REMOTE_ADDR");         $ip1 = getenv("HTT

用php解析html的实现代码_php技巧

最近想用php写一个爬虫,就需要解析html,在sourceforge上找到一个项目叫做PHP Simple HTML DOM Parser,它可以以类似jQuery的方式通过css选择器来返回指定的DOM元素,功能十分强大. 首先要在程序的开始引入simple_html_dom.php这个文件 复制代码 代码如下: include_once('simple_html_dom.php'); PHP Simple HTML DOM Parser提供了3种方式来创建DOM对象 复制代码 代码如下:

php 文章采集正则代码_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_FOLLOW

php采集文章中的图片获取替换到本地(实现代码)_php技巧

复制代码 代码如下: /** * 获取替换文章中的图片路径 * @param string $xstr 内容 * @param string $keyword 创建照片的文件名 * @param string $oriweb 网址 * @return string *  */function replaceimg($xstr,$keyword, $oriweb){     //保存路径    $d = date('Ymd', time());    $dirslsitss = '/var/www

利用PHP制作简单的内容采集器的代码_php技巧

采集器,通常又叫小偷程序,主要是用来抓取别人网页内容的.关于采集器的制作,其实并不难,就是远程打开要采集的网页,然后用正则表达式将需要的内容匹配出来,只要稍微有点正则表达式的基础,都能做出自己的采集器来的.  前几天做了个小说连载的程序,因为怕更新麻烦,顺带就写了个采集器,采集八路中文网的,功能比较简单,不能自定义规则,不过大概思路都在里面了,自定义规则可以自己来扩展.  用php来做采集器主要用到两个函数:file_get_contents()和preg_match_all(),前一个是远程读

PHP正则匹配日期和时间(时间戳转换)的实例代码_php技巧

先来一个比较简单实用的代码 日期YYYY-MM-DD $str = ''; $isMatched = preg_match('/^\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}$/', $str, $matches); var_dump($isMatched, $matches); php需要一定的时间格式才能转换成时间戳(表示从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数),这就要用到php正则判断,以下是代码: <?php //匹配时间格式为2016-0

PHP+ACCESS 文章管理程序代码_php技巧

复制代码 代码如下: <?php session_start(); //========================== //作者:biyuan //时间:2006.07 //联系:QQ6010707 //========================== ?> <html> <head> <title>碧原网络PHP+ACCESS文章管理系统</title> <meta http-equiv="content-type&q