热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php采集入门教程,教你如何写采集-PHP源码

ec(2);php采集入门教程,教你如何写采集我们第一步是采集所有的连接,我们这个可不是简单的采集一篇文章哦,我们要做的是采集整本书,并且保存到一个文本,因为现在MP3普及了,都可以看电子书了。一本书要怎么保存呢,当然是要用书名保存便于查找拉,我们先来采集这本书的标题,先来看一下原形:<metaname"description"content&q

php采集入门教程,教你如何写采集

我们第一步是采集所有的连接,我们这个可不是简单的采集一篇文章哦,我们要做的是采集整本书,并且保存到一个文本,因为现在MP3普及了,都可以看电子书了。
一本书要怎么保存呢,当然是要用书名保存便于查找拉,我们先来采集这本书的标题,
先来看一下原形:

规律是:

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

下面开始开工拉!我们首先要获得资源,这里需要用到一个函数:
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";// 图书地址
有了上边讲的,现在应该可以完全写出来了,开始代码:


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


$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("//is",$r,$booktitle);


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


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


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


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


*原形:

  • 第四十五章 伤痛(1)


    *规律是:

  • 不固定


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


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


    $preg = '/

  • /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 = "";

    $content_end = "
    ";

    }


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

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

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

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

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

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

    writer($bookname." 共".$bookzj."节rn帅哥刘并于".date("D M j G:i:s T Y")."为了毕业而设计小说整理收集rn", "./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("/()/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("

    ","rn",$content[2]));


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


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

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


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


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


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

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


    function writer($content,$url,$mode)
    {
    $fp = fopen($url, $mode);
    fwrite($fp, $content);
    fclose($fp);
    }
    ?>

  • 推荐阅读
    • QUIC协议:快速UDP互联网连接
      QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
    • 深入理解OAuth认证机制
      本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
    • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
    • 国内BI工具迎战国际巨头Tableau,稳步崛起
      尽管商业智能(BI)工具在中国的普及程度尚不及国际市场,但近年来,随着本土企业的持续创新和市场推广,国内主流BI工具正逐渐崭露头角。面对国际品牌如Tableau的强大竞争,国内BI工具通过不断优化产品和技术,赢得了越来越多用户的认可。 ... [详细]
    • 深入理解 Oracle 存储函数:计算员工年收入
      本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
    • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
    • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
    • CSS 布局:液态三栏混合宽度布局
      本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
    • QBlog开源博客系统:Page_Load生命周期与参数传递优化(第四部分)
      本教程将深入探讨QBlog开源博客系统的Page_Load生命周期,并介绍一种简洁的参数传递重构方法。通过视频演示和详细讲解,帮助开发者更好地理解和应用这些技术。 ... [详细]
    • 优化ListView性能
      本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
    • 在 Windows 10 中,F1 至 F12 键默认设置为快捷功能键。本文将介绍几种有效方法来禁用这些快捷键,并恢复其标准功能键的作用。请注意,部分笔记本电脑的快捷键可能无法完全关闭。 ... [详细]
    • 本周信息安全小组主要进行了CTF竞赛相关技能的学习,包括HTML和CSS的基础知识、逆向工程的初步探索以及整数溢出漏洞的学习。此外,还掌握了Linux命令行操作及互联网工作原理的基本概念。 ... [详细]
    • 技术分享:从动态网站提取站点密钥的解决方案
      本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
    • 本文探讨了如何像程序员一样思考,强调了将复杂问题分解为更小模块的重要性,并讨论了如何通过妥善管理和复用已有代码来提高编程效率。 ... [详细]
    • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
    author-avatar
    DZ---Shanghai
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有