PHP爬虫最全总结2-phpQuery,PHPcrawer,snoopy框架中文介绍
来源:互联网 发布:关口知宏2017来中国 编辑:程序博客网 时间:2024/06/06 05:08
第一篇文章介绍了使用原生的PHP和PHP的扩展库实现了爬虫技术。本文尝试使用PHP爬虫框架来写,首先对三种爬虫技术phpQuery,PHPcrawer, snoopy进行对比,然后分析模拟浏览器行为的方式,重点介绍下snoopy
所有代码挂在我的github上
1.几种常用的PHP爬虫框架对比
1.1 phpQuery
优势:类似jquery的强大搜索DOM的能力。
pq()是一个功能强大的搜索DOM的方法,跟jQuery的$()如出一辙,jQuery的选择器基本上都能使用在phpQuery上,只要把“.”变成“->”,Demo如下(对应我的github的Demo5)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
1.2 PHPcrawer
优势:过滤能力比较强。
官方给的Demo如下(我的github中对应demo4):
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
1.3 snoopy
优势:提交表单,设置代理等
Snoopy是一个php类,用来模拟浏览器的功能,可以获取网页内容,发送表单,
demo如下(对应github中的demo3):
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
1.4 phpspider
优势:安装配置到数据库
提供了安装配置,能够直接连接mysql数据库,使用也是比较广泛,这里我们暂时不单独介绍。
2.模拟用户行为
2.1 file_get_contents
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
2.2 curl
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
2.3 snoopy
- 表单提交
我们的一个例子
form-demo.html
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
form-demo.php
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
问题1:openssl extension required for HTTPS 增加对https的支持
- 1
- 2
- 3
- 4
- 5
- 6
- 7
问题2:405 Not Allowed增加
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
问题3 : snoopy使用代理
- 1
- 2
- 3
- 4
- 5
- 6
问题:
其实尝试了网站进行提交表单是有问题的。这样简单的处理是不能提交表单的,使用代理也是有问题
的。snoopy框架确实会有很多问题,后面有解决思路了再说。
参考阅读:
- cURL、file_get_contents、snoopy.class.php 优缺点
- 开源中国-PHP爬虫框架列表
- phpQuery
- Snoopy下载地址
- Snoopy —— 强大的PHP采集类使用详解及示例:采集、模拟登录及伪装浏览器
- 开源中国-snoopy博客列表
- PHP爬虫最全总结2-phpQuery,PHPcrawer,snoopy框架中文介绍
- PHP爬虫最全总结2-phpQuery,PHPcrawer,snoopy框架中文介绍
- PHP爬虫最全总结2-phpQuery,PHPcrawer,snoopy框架中文介绍
- PHPquery php爬虫
- PHP爬虫最全总结1
- 最全Python爬虫总结
- PHP采集类snoopy详细介绍(snoopy使用教程)
- php 抓图神器 snoopy类介绍
- PHP抓取采集类snoopy介绍
- PHP抓取采集类snoopy介绍
- php snoopy
- Snoopy PHP
- 爬虫技术的门道,这篇文章总结的最全
- 爬虫技术的门道,这篇文章总结的最全
- 爬虫技术的门道,这篇文章总结的最全
- snoopy总结
- phpquery中文手册
- Snoopy中文手册(php采集利器)-001【转】
- Javascript笔记(高级)
- 数据结构与算法(Java语言描述)--链表-02
- MyBatis学习笔记2_示例
- 闭包函数
- CentOS 6.5 配置IP地址的三种方法
- PHP爬虫最全总结2-phpQuery,PHPcrawer,snoopy框架中文介绍
- 递归求解兔子对数问题
- Python语言入门(七)list集合切片体验Python语法简洁
- document.querySelector以及document.querySelectorAll中的转义符
- AVL树的插入和删除
- STM32基础知识3-STM32串口USART1的使用方法和程序
- 解决NLTK包下载出错问题及nltk测试
- Linux :service network restart :bringing up interface eth0:unknown connection
- 排序代码实现总结(1)--- 冒泡排序