其实我自身的不是经常写正则,而且不规则的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爬虫框架相关推荐

  1. [学]PHP爬虫框架phpspider

    [学]PHP爬虫框架phpspider http://www.phpchina.com/article-40283-2.html http://www.111cn.net/phper/php-gj/6 ...

  2. python创建scrapy_Python爬虫教程-31-创建 Scrapy 爬虫框架项目

    首先说一下,本篇是在 Anaconda 环境下,所以如果没有安装 Anaconda 请先到官网下载安装 Scrapy 爬虫框架项目的创建0.打开[cmd] 1.进入你要使用的 Anaconda 环境1 ...

  3. Python中爬虫框架或模块的区别

    Python中爬虫框架或模块的区别,我们在Python的学习过程中,需要不断的总结知识点,这样我们才能进步的更快一些. (1)爬虫框架或模块 Python自带爬虫模块:urllib.urllib2; ...

  4. 异步爬虫框架与协程浅析

    异步爬虫框架与协程浅析 经典原文使用协成完成异步爬虫原文链接 根据分享原文链接. Python基于协程的实现,其实是利用了Python生成器的特性完成的,Python生成器的原理其实涉及到用户态绿色线 ...

  5. Python Scrapy爬虫框架实战应用

    通过上一节<Python Scrapy爬虫框架详解>的学习,您已经对 Scrapy 框架有了一个初步的认识,比如它的组件构成,配置文件,以及工作流程.本节将通过一个的简单爬虫项目对 Scr ...

  6. python爬虫scrapy框架教程_Python爬虫教程-30-Scrapy 爬虫框架介绍

    从本篇开始学习 Scrapy 爬虫框架 Python爬虫教程-30-Scrapy 爬虫框架介绍 框架:框架就是对于相同的相似的部分,代码做到不出错,而我们就可以将注意力放到我们自己的部分了 常见爬虫框 ...

  7. 用Scrapy爬虫框架爬取食品论坛数据并存入数据库

    这篇文章主要给大家介绍了食品网站的数据采集和存储过程,详解了如何分析网页结构.爬虫策略.网站类型.层级关系.爬虫方法和数据存储过程,最终实现将帖子的每条评论爬取到数据库中,并且做到可以更新数据,防止重 ...

  8. 调用本地html_requests-html:最简单的爬虫框架,看完你就会了

    很多朋友都听说过Python的大名,而Python也拥有众多的爬虫框架,其中最简单的莫过于requests-html了.它和著名的网络请求库requests是同一个作者,着重于XML数据提取,可以说是 ...

  9. 爬虫抓取页面数据原理(php爬虫框架有很多 )

    爬虫抓取页面数据原理(php爬虫框架有很多 ) 一.总结 1.php爬虫框架有很多,包括很多傻瓜式的软件 2.照以前写过java爬虫的例子来看,真的非常简单,就是一个获取网页数据的类或者方法(这里的话 ...

最新文章

  1. AsyncTask工作机制简介
  2. linux内核网络初始化,Linux内核--网络栈实现分析
  3. Day24--Part2-伪Ajax(iframe)
  4. https://toonify.photos/ for Disney style
  5. 20应用统计考研复试要点(part19)--概率论与数理统计
  6. URAL 题目1297. Palindrome(后缀数组+RMQ求最长回文子串)
  7. 程序员如何高效的学习?
  8. 【2015年第4期】面向科技情报的互联网信息源自动发现技术
  9. (转)2-sat 专题
  10. python 读取xml表结构数据_Python从XML-fi读取数据
  11. 特斯拉加州工厂无视禁令强行复工,马斯克:要抓就只抓我
  12. 为什么使用JDBC数据库编程
  13. difference softreference and weakreference
  14. 百科知识:VTP(思科)
  15. 咸鱼Maya笔记—NURBS双轨成型法
  16. 用svg矢量图实现动画效果
  17. java Math类的常用方法介绍
  18. jquery append添加的元素用jquery无法获取到
  19. JavaScript中6种继承方式总结
  20. centos 6.8使用wine安装QQ2016

热门文章

  1. 常用人体表面积计算公式(汇总)
  2. 容器应用优雅关闭的终极大招
  3. Windows系统下如何在cmd命令窗口中切换不同版本Python
  4. lca题目 敌对势力 题解
  5. 面向对象的三大特性之多态
  6. 【翻译】fancyBox3 中文文档
  7. 计算机视觉任务怎么选?CV主要任务是什么?
  8. JAVA_EE(二)_WEB服务器开发
  9. 【CSS】CSS 背景设置 ④ ( 超大背景图片设置 | 背景图片定位设置 background-position: center top; )
  10. docker安装redis教程