PHP爬虫小结

PHP爬虫

images.jpeg

现在网络上有很多很多的爬虫了,各式各样的,

但是大家都不太喜欢用PHP来写爬虫,可能是由于不稳定,可以组件库太少,

不管怎么样,PHP写起来还是很简单的。

curl 实现方法

直接采用 PHP curl来抓取数据

socket方法

采用最原始的socket方法,

这里有一个 https://github.com/hightman/pspider 项目,很完善,也是采用了socket方式。

file_get_contents 方法

file_get_contents 方法 ,这个最直接,但是有的虚拟机可能会有限制。

我用的是腾讯云的主机,没有任何限制,就直接用curl方法了

爬取网页步骤

  • 设置种子url,一般都是站点的域名,通过这个主页一步一步抓取
  • 抓取种子url,分析这个页面,获取所有的相关的url,根据是否抓取外站策略来判断url是否入队列,这里队列实现就比较多样化了,可以redis ,也可以数据库,我就直接数据库保存了。
  • 处理url,判断是否是需要抓取的网页
  • 如果是要抓取的网页,处理入库
  • 如果不是,就更新队列

有多个PHP的爬虫推荐:

这里重点说一下第一个:

一个用PHP实现的轻量级爬虫,只提供了爬虫最核心的调度功能,所以整体实现非常精简,使用也非常简单并且易于上手。

特点

  1. 轻量级,内核简单非常易于上手
  2. 基于Redis的调度插件支持分布式以及断点抓取
  3. 易扩展易定制,可以随时按照自己的需求定制调度插件

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏架构师之路

细聊冗余表数据一致性(架构师之路)

本文主要讨论四个问题: (1)为什么会有冗余表的需求 (2)如何实现冗余表 (3)正反冗余表谁先执行 (4)冗余表如何保证数据的一致性 一、需求缘起 互联网很多...

55180
来自专栏张善友的专栏

为首次部署MongoDB做好准备:容量计划和监控

如果你已经完成了自己新的MongoDB应用程序的开发,并且现在正准备将它部署进产品中,那么你和你的运营团队需要讨论一些关键的问题: 最佳部署实践是什么? 为了...

44280
来自专栏申龙斌的程序人生

方便得令人发指的everything软件

大家经常会遇到电脑中找不到文件的痛苦,everything能够帮上大忙!而且还是免费的,无广告,无弹窗。该程序是一款免费的、极速的、文件名搜索定位工具。使用该程...

32450
来自专栏知晓程序

小程序管理员的这 9 个权限,你真的都了解吗?| 小程序问答 #54

在第 30 期「小程序问答」文章中,我们介绍了新推出的小程序后台「成员管理」功能。

17450
来自专栏程序你好

消息通知子系统用户需求

25740
来自专栏云飞学编程

python简单应用,用python爬虫和GUI编程,做一个二维码生成器

python爬虫不止可以批量下载数据,还可以有很多有趣的应用,之前也发过很多,比如天气预报实时查询、cmd版的实时翻译、快速浏览论坛热门帖等等,这些都可以算是爬...

19310
来自专栏Android干货

java.lang.RuntimeException: Fail to connect to camera service问题

935100
来自专栏知识分享

11-云端安装MQTT服务器

32540
来自专栏知晓程序

这样注册小程序,能省 300 元!| 小程序问答 #44

但如果你暂时还没有注册小程序,无论你本身是否有公众号,依然都需要在公众平台重新注册小程序帐户,才能拥有自己的小程序。

17920
来自专栏黑泽君的专栏

GitHub上如何创建小组?

比如:在谷歌工作,有开发小组、营销小组、运营小组,     在我所在的开发小组里面有三个人,我们需要访问相同的代码仓库,并且经常需要互相交流。     这个...

16410

扫码关注云+社区

领取腾讯云代金券