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;}
有点强迫症的感觉
源码还没时间读,确实值得一读
目前其他功能测试过在写入博客
phpspider php爬虫框架相关推荐
- [学]PHP爬虫框架phpspider
[学]PHP爬虫框架phpspider http://www.phpchina.com/article-40283-2.html http://www.111cn.net/phper/php-gj/6 ...
- python创建scrapy_Python爬虫教程-31-创建 Scrapy 爬虫框架项目
首先说一下,本篇是在 Anaconda 环境下,所以如果没有安装 Anaconda 请先到官网下载安装 Scrapy 爬虫框架项目的创建0.打开[cmd] 1.进入你要使用的 Anaconda 环境1 ...
- Python中爬虫框架或模块的区别
Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...
- 异步爬虫框架与协程浅析
异步爬虫框架与协程浅析 经典原文使用协成完成异步爬虫原文链接 根据分享原文链接. Python基于协程的实现,其实是利用了Python生成器的特性完成的,Python生成器的原理其实涉及到用户态绿色线 ...
- Python Scrapy爬虫框架实战应用
通过上一节<Python Scrapy爬虫框架详解>的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程.本节将通过一个的简单爬虫项目对 Scr ...
- python爬虫scrapy框架教程_Python爬虫教程-30-Scrapy 爬虫框架介绍
从本篇开始学习 Scrapy 爬虫框架 Python爬虫教程-30-Scrapy 爬虫框架介绍 框架:框架就是对于相同的相似的部分,代码做到不出错,而我们就可以将注意力放到我们自己的部分了 常见爬虫框 ...
- 用Scrapy爬虫框架爬取食品论坛数据并存入数据库
这篇文章主要给大家介绍了食品网站的数据采集和存储过程,详解了如何分析网页结构.爬虫策略.网站类型.层级关系.爬虫方法和数据存储过程,最终实现将帖子的每条评论爬取到数据库中,并且做到可以更新数据,防止重 ...
- 调用本地html_requests-html:最简单的爬虫框架,看完你就会了
很多朋友都听说过Python的大名,而Python也拥有众多的爬虫框架,其中最简单的莫过于requests-html了.它和著名的网络请求库requests是同一个作者,着重于XML数据提取,可以说是 ...
- 爬虫抓取页面数据原理(php爬虫框架有很多 )
爬虫抓取页面数据原理(php爬虫框架有很多 ) 一.总结 1.php爬虫框架有很多,包括很多傻瓜式的软件 2.照以前写过java爬虫的例子来看,真的非常简单,就是一个获取网页数据的类或者方法(这里的话 ...
最新文章
- AsyncTask工作机制简介
- linux内核网络初始化,Linux内核--网络栈实现分析
- Day24--Part2-伪Ajax(iframe)
- https://toonify.photos/ for Disney style
- 20应用统计考研复试要点(part19)--概率论与数理统计
- URAL 题目1297. Palindrome(后缀数组+RMQ求最长回文子串)
- 程序员如何高效的学习?
- 【2015年第4期】面向科技情报的互联网信息源自动发现技术
- (转)2-sat 专题
- python 读取xml表结构数据_Python从XML-fi读取数据
- 特斯拉加州工厂无视禁令强行复工,马斯克:要抓就只抓我
- 为什么使用JDBC数据库编程
- difference softreference and weakreference
- 百科知识:VTP(思科)
- 咸鱼Maya笔记—NURBS双轨成型法
- 用svg矢量图实现动画效果
- java Math类的常用方法介绍
- jquery append添加的元素用jquery无法获取到
- JavaScript中6种继承方式总结
- centos 6.8使用wine安装QQ2016