zoukankan      html  css  js  c++  java
  • 关于Simple_html_dom的小应用

      今天一同学给我推荐了本书,说是刚出不久,内容还不错,是心灵鸡汤类的书,于是按捺不住就像在网上下一本,可是木有资源肿么办。只有在线看的,作为一个准码农,所以甭废话了,咱得用代码解决问题对吧……

      1.工欲善其事必先利其器

      首先你得有个工具用吧,别想我之前似得抓个网页,就写了好多的$pattern去挨个匹配标签,作为伪程序员那哪行啊,对吧,咱得学着它Simple_html_dom

    专门解析HTML文档的一东西,超好用的哦~。Simple_html_dom是什么东西在咱博客园上就有怎么用的博客,在这不做赘述。

      2.代码详解

      啥也甭说,还是代码说话给力,以下是抓去新浪的小说为例。

      (1)首先得引入文件吧

        include"simple_html_dom.php";

      (2)咱这抓小说比较简单,深度就一层,不涉及到什么图的深搜广搜,你只要观察URL的规律即可

        $url="http://vip.book.sina.com.cn/chapter/220331/2143";//用for循环加东西就是了

      (3)如果for循环的次数太多会报错:超时提醒。甭担心这不是咱的错,这是配置文件的错,咱加上这句话就OK了

        ini_set('max_execution_time', '100');

      (4)实例化Simple_html_dom

        $html=new simple_html_dom();

      (5)然后就是for循环生成一个个的URL然后提取内容了主要用到下面的东西  

        //从URL加载
        $html->load_file($url_temp);

        //查找class为mainContent的div
        $title=$html->find("div[class=mainContent] h1",0);

        //收集正文
        $content=$html->find("div[class=mainContent] div[class=contTxt1]",0);

      (6)适当的用正则控制以下格式

        //换行
        $content=preg_replace($pattern," ",$content);
        //加空格
        $content=preg_replace($pattern1," ",$content);

      (7)当然少不了他了(去除html标签)

        $title=strip_tags($title);
        $content=strip_tags($content);

      (8)写入文件即可

      (9)恭喜你,小说抓取成功。

    3.主要用到的技术

       (1)对php的熟练应用

       (2)掌握正则表达式。

       (3)主要是Simple_html_dom.php的使用

       (4)还得注意php超时问题

      当循环太多时会出现超时问题,建议不要修改配置文件

  • 相关阅读:
    ScrollView下嵌套GridView或ListView默认不在顶部的解决方法
    Hdu5303 Delicious Apples 贪心
    javax.xml.transform.TransformerConfigurationException: Could not compile stylesheet
    unable to execute dex: multiple dex files Cocos2dxAccelerometer
    Unity游戏小地图生成
    LeetCode Spiral Matrix II
    <九度 OJ>题目1012:畅通project
    cpu信息
    挖一挖不经常使用到而又非常有用的重载-Split
    hdu1501 Zipper--DFS
  • 原文地址:https://www.cnblogs.com/ludashi/p/3242021.html
Copyright © 2011-2022 走看看