zoukankan      html  css  js  c++  java
  • phpspider php爬虫框架

    其实我自身的不是经常写正则,而且不规则的html去写正则本身就是件很麻烦的事情,如果页面有些微变动和更新就得再次去维护正则表达式,其实是非常蛋疼的

    我第一感觉就是去找一下爬虫的库,但是发现现在php爬虫成熟的开源项目还挺多的

    最开始我是准备使用phpquery,因为他实现了类似jQuery的功能,可以减少我花费的时间,但是毕竟是6年前的项目,原项目在http://code.google.com/p/phpquery/上,github虽然已经有人copy过去了,

    年久失修,因为不是特别好使用,也别现在啥玩意都需要composer安装,没有提交到https://packagist.org,但是现在新项目好多都是基于php7的,有点过时了,

    中了一会发现现在phpspider挺好用,注意不是php-spider,而且有中文文档,但是还没有特别完善,https://doc.phpspider.org/

    https://github.com/owner888/phpspider

    注意:本框架只能在命令行下运行,命令行、命令行、命令行,重要的事情说三遍 ^_^

    但是我需要在web下运行,test_requests.php 发现已经实现了css选择器作为替代手写正则表达式的方法,很好,强不强大等用户自己使用过后再自己评价

    可以直接在web上运行

    use phpspidercore equests;
    use phpspidercoreselector;

    引入



    $html = requests::get('http://www.ccmn.cn/'); $data = selector::select($html, "#40288092327140f601327141c0560001", "css"); $data1 = selector::select($data, "tr", "css"); array_shift($data1); $array = array(); if (!empty($data1) && is_array($data1)) { foreach ($data1 as $k => &$v) { $data2 = selector::select($v, "td", "css"); foreach ($data2 as $kk => &$vv) { $vv = str_replace('
', '', $vv); $vv = str_replace(array(" ", " ", " "), "", $vv); $vv = trim($vv); } $data2['3'] = selector::select($data2['3'], "font", "css"); unset($data2['6']); $array[] = $data2; }

    就完成了一个还算有一点点复杂的网页固定位置的抓取

    很简单对吧

    https://doc.phpspider.org/selector.html

    官方支持更强大的css选择器,基本常用的足够了

    和写jquery的感觉差不多

    还有这个是cli运行,

    注意不要删了

    #/* Do NOT delete this comment */#

    #/* 不要删除这段注释 */#

    会报错,因为蛋疼去匹配了这些

            if (!preg_match("#/* Do NOT delete this comment */#", $content) || !preg_match("#/* 不要删除这段注释 */#", $content))
            {
                $msg = "Unknown error...";
                log::error($msg);
                exit;
            }

    有点强迫症的感觉

    源码还没时间读,确实值得一读

    目前其他功能测试过在写入博客

  • 相关阅读:
    9-10-堆 Windows消息队列(25 分)
    9-7 二叉搜索树的结构(30 分)
    9-4 笛卡尔树(25 分)
    9-3 搜索树判断(25 分)
    7-9 堆中的路径(25 分)
    个人总结
    软工网络15个人作业4——alpha阶段个人总结
    软件工程网络15个人作业3——案例分析(201521123029 郑佳明)
    软件工程15 结对编程作业
    软件工程网络15个人阅读作业2(201521123029 郑佳明)
  • 原文地址:https://www.cnblogs.com/zx-admin/p/8072500.html
Copyright © 2011-2022 走看看