php 网络爬虫开源,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 phpspider\core\requests;

use phpspider\core\selector;

引入

$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("\r\n", "\r", "\n"), "", $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;

}

有点强迫症的感觉

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值