phphot

php,linux,mysql,apache

小秘密ID:phphot
906121次访问,排名33好友68人,关注者209
php,apache,mysql,linux,html,css,javascript
phphot的文章
原创 3526 篇
翻译 0 篇
转载 14 篇
评论 604 篇
phphot的公告


经典推荐!!!
离开公司时留给公司的十句话 与大家分享

史上最全的小白兔的笑话

从一则笑话分析需求的陷阱

本科差点没能毕业,工作五年后年收入过百万

从小公司到500强 80年代人的面试宝典

那些雷得我们如此销魂的台词

老IT人追忆十五年IT从业经历

汶川大地震牛B语录集锦

千百万学子未来几年的出路

大学时代影响我的人生的10件大事-前辈的经验

噩梦的那一年-程序员之路

成功的背后!(给所有IT人)

一部让大学生少奋斗10年的成功宝典

职业生涯中12个最致命的想法

华为面试,第三轮被拒,想哭

一个牛人给java初学者的建议

黑客帝国之PHP与ASP.net不得不说的故事

一个应界毕业生的深圳求职经历。

程序人生:女程序员的求职奋斗史

2008春晚诗朗诵《心里话》之程序员版

最高境界---笑到肚子疼!!!!

是非人生——一个菜鸟程序员的5年人生路

网友10年跳槽经验总结

2008年IT行业10大热门职业调查结果出炉

百度实习经验总结

一点感慨,与诸君共勉,正式告别程序员生涯

程序员V.S.编程语言你上“贼船”了吗

上海IT精英群体某些行为特征被妖魔化

五百强各大行业简介+面试流程及技巧

08年各大公司薪水最新行情全面曝光


XML聚合
feedsky
最近评论
李雪娇:既然在这种情况下遇到难民,就应该先把车里的面包给大家吃,就算过期对于难民来说也是很好的食物,在这种情况下不应该考虑记者,而是怎么能帮助那些难民,应该给他们更多的食物,帮助他们。
考虑不够深入:如题
瞿标:要记者跟难民在原地等着然后回去的时候把他们都带到可口可乐公司去吃,不是很好吗!!那明天的头条新闻不就是可口可乐帮助难民解决困难
rain:说的挺好的……
monkysu:听起来怎么像是某位领导在做报告啊
文章分类
收藏
    相册
    YY的图(禁)
    绝对精彩
    网上好图(禁)
    我的工作(禁)
    我的作品(禁)
    热门站
    baidu
    google
    yahoo
    存档
    订阅我的博客
    XML聚合  FeedSky

    原创 菜鸟教你学采集收藏

    新一篇: 站在北大青鸟学员的立场上谈一谈自己的感受 | 旧一篇: 正则表达式

    ......................................................................................................................................

       先看下源码:

           地址是:http://book.sina.com.cn/nzt/lit/zhuxian2/index.shtml 

    我们第一步是采集所有的连接,我们这个可不是简单的采集一篇文章哦,我们要做的是采集整本书,并且保存到一个文本,因为现在MP3普及了,都可以看电子书了。

    一本书要怎么保存呢,当然是要用书名保存便于查找拉,我们先来采集这本书的标题,

    先来看一下原形:

    <meta name="description" content="诛仙(二),后金庸武侠圣经:诛仙2">

    规律是:

    <meta name="description" content="标题">

    我们来写一下正则表达式吧,不要告诉我不会,不会就来湖南拉,嘿嘿很多大鸟的。

    正则表达式:

    <meta name=\"description\" content=\"(.*?)\">

    下面开始开工拉!我们首先要获得资源,这里需要用到一个函数:

    file_get_contents()

    介绍:

    主要功能:将整个文件读入一个字符串

      原形是:string file_get_contents

    ( string filename [, bool use_include_path [, resource context [, int offset [, int maxlen]]]] )

    具体什么意思呢,其实就是告诉你在某个资源内搜索符合规定的字符串并赋予给一个变量

      上边是开始需要用到的,我们了解一点就开始写一点那样更能够深刻的理解并且能记住,我来分析下写程序的思路:

    我们采集一个地址,不会是就采集一本书把所以我们的采 集地址是变化的,变化的用什么呢?这个时候一个硕大的粉笔扔了过来,我不是告诉你了吗?变量,一个严厉的王建军老师,用尽了全身力气,汇集在粉笔上对我无 情的扔了过来,我想哭。。。。。。。老师打人了!!!!!!!!打家来看啊。

    用变量好的,那就用变量,我们获取地址,代码如下:

    $url = "http://book.sina.com.cn/nzt/lit/zhuxian2/index.shtml";// 图书地址

    有了上边讲的,现在应该可以完全写出来了,开始代码:

    <?php

    //****************************************************************

    $url = "http://book.sina.com.cn/nzt/lit/zhuxian2/index.shtml";// 图书地址

    $ver = "old"; //新旧版本

    //因为图书他的页面又两种板式,所以我们要在这里区别一下

    //****************************************************************

    // 获取页面代码 file_get_contents() 把文件读入一个字符串,下边的时候需要用到

    $r = file_get_contents($url);

    //在上边获取的字符串中搜索标题,并赋值给变量$booktitle,$booktitle是数组,/is就凑活理解成开始吧!

    preg_match("/<meta name=\"description\" content=\"(.*?)\">/is",$r,$booktitle);

    //把第一个出现捕获的标题赋值给变量bookname。

    $bookname = $booktitle[1]; //书名

    //print_r ($booktitle);die();不理解的输出这个看看,嘿嘿,帮助大家理解

    /*************************************************************************************

    *原形:<li><a href=/nzt/lit/zhuxian2/1.shtml target=_blank class=a03>第四十五章  伤痛(1)</a>

    *规律是:<li><a href=不固定.shtml target=_blank class=a03>不固定</a>

    *ISU是正则的一种模式,该模式是非贪婪模式,也就是说只要匹配上就结束

    *************************************************************************************/

    $preg = '/<li><a href=(.*).shtml target=_blank class=a03>/isU';

    /********************************************************************************

    *preg_match_all进行全局正则表达式匹配

    *原形:

    *

    int preg_match_all

    *

    ( string pattern, string subject, array matches [, int flags] )

    *意思是:在全局搜索资源变量$preg,得到一个数组赋值给一个变量$zj,这个变量也就是数组了。

    *取得其中的资源的时候用标示就可以,不会的看下数组哦!

    *汪老师说了,不会数组的给我出去啃书,什么时候会了进来

    **********************************************************************************/

    preg_match_all($preg, $r, $zj);

    //print_r ($zj);die();不理解的输出这个看看,嘿嘿,帮助大家理解

    // 计算标题数量,我是问了最后提示大家看又多少章节,采集了多少

    $bookzj = count($zj[1]);

    //判断你要采集的板式是那种哦,因为内容开始不一样哦,其实可以自动判断的,我也写成了,但是不发布,因为很简单

    if ($ver=="new"){

    $content_start = "<!--正文内容开始-->";

    $content_end = "<!--正文内容结束-->";

    }

    if ($ver=="old"){

    $content_start = "<\/table><!--NEWSZW_HZH_END-->";

    $content_end = "<br>";

    }

    //采集后的文件,然后那来进行处理.这个是设置编码的,为什么是这个呢,因为你看下网站源码,嘿嘿!!!

    header("Content-Type:text/html;charset=gb2312");

    /*****************************************************************************************

    *从1到136页的内容一次合并.这个是最爽的...打个版权,以免有人侵权,嘿嘿,好像我就在侵权哦!!!

    *某某一定想杀人,这句意思就是写个版权,创建文件。

    *****************************************************************************************/

    writer($bookname." 共".$bookzj."节\r\n帅哥刘并于".date("D M j G:i:s T Y")."为了毕业而设计小说整理收集\r\n", "./ljy/".$bookname.".txt","w+");

    /*****************************************************************************************

    *从1到136页的内容一次合并.这个是最爽的...打个版权,以免有人侵权,嘿嘿,好像我就在侵权哦!!!

    *某某一定想杀人,这句意思就是写个版权,创建文件。

    *****************************************************************************************/

    for ($i=0;$i<$bookzj;$i++) {//提示下:$bookzj里边是什么前边叫你输出了,不明自自己在看下

    //echo "http://book.sina.com.cn".$zj[1][$i]".shtml";die();

    $str = file_get_contents("http://book.sina.com.cn".$zj[1][$i].".shtml");

    preg_match("/(<title>)(.*?)(<\/title>)/is",$str,$title);

    $title = str_replace("_读书频道_新浪网","",preg_replace("/<(.*?)>/s","",$title[2]));

    /***************************************************************************

    *preg_replace执行正则表达式的搜索和替换

    *str_replace用法真的不好说,就看例子吧!其实就是一个替换

    * str   =   "abcabc".replace(/a/g,   "d");         //结果为   dbcdbc   

    * str   =   "abcabc".replace(/a/,   "d");         //结果为   dbcabc   

    ***************************************************************************/

    preg_match("/(".$content_start.")(.*?)(".$content_end.")/is",$str,$content);

    $content = preg_replace("/<(.*?)>/s","",str_replace("</p>","\r\n",$content[2]));

    $content = str_replace("

    ","",preg_replace("/^[\s]*\n/is","",$content));

    $content = str_replace("   ","  ",preg_replace("/^[\s]*\n/is","",$content));

    $result = " \r\n第".($i+1)."节--------".$title."_汪老师就是帅 --------- \r\n".$content;

    //var_dump ($result);die();

    writer($result, "./ailaopo/".$bookname.".txt","a+");

    echo "小说".$bookname."共".$bookzj."节,现在整理到第".$i."节 _".$title."<br>";

    }

    echo "小说".$bookname."共".$bookzj."节 已全部整理完成!";

    function writer($content,$url,$mode)

    {

        $fp = fopen($url, $mode);

        fwrite($fp, $content);

        fclose($fp);         

    }

    ?>

    发表于 @ 2008年07月05日 00:46:57|评论(loading...)|编辑|收藏

    新一篇: 站在北大青鸟学员的立场上谈一谈自己的感受 | 旧一篇: 正则表达式

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © phphot