可能是目前最好用的国产 PHP 爬虫框架 - XCrawler 1.0.0 版本发布

2018-06-04 09:01:28 +08:00
 wyan453351466

感觉目前很多人提到爬虫首先想到 Python 应该是一种刻板印象吧。其实 PHP 也可以写出很好用的爬虫。而且如果你是以在有限的时间内开发出更好用的爬虫为目的的话,使用自己擅长的语言是再好不过的(以学习为目的的话就另当别论了)。

于是就有了 XCrawler 这个项目。

跟其他已有的 PHP 爬虫框架相比,XCrawler 的一个主要区别是,在核心组件上基于已有的成熟组件: Guzzle 和 Symfony 的 DomCrawler。并尽可能在满足常用爬虫功能(多线程 /失败重试 /进度日志 /Dom 解析等..)的前提下保持简单。

0.1 版本(首个版本)发布的时候,当时是基于一个框架做的。所以使用的时候只能单独作为一个项目去写。使用起来不是很方便。

这次的主要改进是封装成了一个 composer 包。 所以你可以把 xcrawler 在任何自己喜欢的框架或已有的项目中使用。

GitHub 地址: https://github.com/yan68/xcrawler

文档地址: https://xcrawler.yanshuju.com/docs/

8282 次点击
所在节点    程序员
24 条回复
wyan453351466
2018-06-08 05:28:35 +08:00
@ucaime 注意关键字“可能”。
wyan453351466
2018-06-18 12:46:22 +08:00
@gouchaoer ts 版本是线程安全版本,nts 版本是线程不安全版本。这个和是不是多线程有什么关系?
如果 curl multi 不是多线程,请求速度和 curl 那它存在的意义是什么?

老哥,建议你先搞清楚 ts 版本和 nts 版本的区别:

https://blog.csdn.net/qq_31643343/article/details/48996735
wyan453351466
2018-06-18 12:46:53 +08:00
@wyan453351466 *如果 curl multi 不是多线程,请求速度和 curl 一致, 那它存在的意义是什么?
wyan453351466
2018-06-18 12:53:42 +08:00
@gouchaoer nts 版本不等于不能开启多线程,好吧? 选择 ts 版本还是 nts 版本 主要是跟使用的服务器( IIS、Nginx )的不同有关系。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/460110

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX