在后端开发中,抓取爬虫非常流行,也有一些开发者在为人们开发高质量的解析器和抓取工具。在本篇文章中,我们就探索一些爬虫库,这些库对网站抓取以及存储数据都就有用的。
在PHP中,我们使用以下库进行数据和内容抓取:
- Goutte
- Simple HTML DOM
- html SQL
- cURL
- Request
- HTTPful
- Buzz
- Guzzle
1. Goutte
- 说明:
- [*]Goutte库很有用,它让PHP抓取内容更出色
- 基于Symfony Framework
- 提供API,可以从Ajax / XML响应中抓取内容
- 基于MIT许可证
[/*]
[*]
要求:
- [*]
- 依赖PHP 5.5+和Guzzle 6+[/*]
[/*]
[*]
说明:
- [*]
- https://goutte.readthedocs.io/en/latest/[/*]
[/*]
[*]
更多内容:
- [*]
- https://menubar.io/php-scraping-tutorial-scrape-reddit-with-goutte [/*]
[/*]
[/list]
2.Simple HTML DOM
- 说明:
- [*]Simple HTML DOM可以非常轻松地访问和使用HTML
- Simple HTML Dom使用选择器在HTML上寻找标签,就像jQuery
- 只需一行中就可从HTML抓取数据
- 没有其它库速度快
- 使用MIT许可证
[/*]
[*]
要求:
- [*]
- 需要PHP 5+[/*]
[/*]
[*]
说明:
- [*]
- http://simplehtmldom.sourceforge.net/manual.htm[/*]
[/*]
[*]
更多内容:
- [*]
- http://www.prowebscraper.com/blog/web-scraping-using-php/[/*]
[/*]
[/list]
3. htmlSQL
- 说明:
- [*]目前还是一个实验性的PHP库,你可以使用类似SQL的语法访问HTML页面的值
- 无需编写复杂的函数或正则表达式即可获取指定HTML值
- 如果你喜欢SQL,那么相信你也会喜欢这个库
- 可以将其用于各种杂项任务快速解析网页
- 基于BSD许可证
[/*]
[*]
要求:
- [*]
- PHP4 +以上版本均正常运行[/*]
- [*]
- 配合Snoopy 1.2.3(可选-网络传输用)。[/*]
[/*]
[*]
说明文档:
- [*]
- https://github.com/hxseven/htmlSQL[/*]
[/*]
[*]
更多:
- [*]
- https://github.com/hxseven/htmlSQL/tree/master/examples[/*]
[/*]
[/list]
4. cURL
- 描述:
- [*]cURL是公认用于从网页提取数据最受欢迎的库之一(已内置在PHP扩展)
- 由于它是标准化的PHP库,无需包含第三方文件和类
[/*]
[*]
说明文档:
- [*]
- http://php.net/manual/ru/book.curl.php[/*]
[/*]
[*]
查看更多:
- [*]
- http://scraping.pro/scraping-in-php-with-curl/ [/*]
[/*]
[/list]
5.Request
- 描述
- [*]Request是用纯PHP编写的HTTP库
- 它基于出色的 Python库中的Requests API
- 可以发送HEAD,GET,POST,PUT,DELETE和PATCH等HTTP请求
- 借助Request,可以添加自定义header,表单数据,多段文件和带有简单数组的参数,以及访问动态响应数据
- 基于ISC许可证
[/*]
[*]
要求:
- [*]
- 需要PHP版本5.2+[/*]
[/*]
[*]
说明文件:
- [*]
- https://github.com/rmccue/Requests/blob/master/docs/README.md[/*]
[/*]
[/list]
6. HTTPful
- 说明:
- [*]HTTPful是一个简单的PHP库。因为它可链接亦可读,它的目标就是使HTTP更有可读性。
- 它让开发人员专注于与API交互,而不必浏览curl set_opt页面。它的PHP REST客户端也很稳定
- 使用MIT许可证
[/*]
[*]
要求:
- [*]
- PHP版本5.3+[/*]
[/*]
[*]
说明文件:
- [*]
- http://phphttpclient.com/docs/[/*]
[/*]
[/list]
7. Buzz
- 描述:
- [*]Buzz非常有用,它是一个轻量级的库,可轻松发出HTTP请求
- 设计简单,具有Web浏览器特性
- 使用MIT许可证
[/*]
[*]
要求:
- [*]
- 需要PHP版本7.1以上[/*]
[/*]
[*]
说明文件:
- [*]
- https://github.com/kriswallsmith/Buzz/blob/master/doc/index.md[/*]
[/*]
[*]
学到更多:
- [*]
- https://github.com/kriswallsmith/Buzz/tree/master/examples[/*]
[/*]
[/list]
8.Guzzle
- 说明:
- [*]Guzzle非常有用,因为它是一个PHP HTTP客户端,使您可以轻松地发送HTTP请求,它与Web服务集成也很容易
[/*]
[*]
要求:
- [*]
- 需要PHP 5.3.3+以上版本。[/*]
[/*]
[*]
说明文档:
- [*]
- http://docs.guzzlephp.org/en/stable/[/*]
[/*]
[*]
更多内容:
- [*]
- https://lamp-dev.com/scraping-products-from-walmart-with-php-guzzle-crawler-and-doctrine/958
- [/*]
[/*]
[/list]
以上绍这些可用的Web抓取工具,根据自己的Web抓取需求,确定哪种工具适合自己。
有任何补充,欢迎各位留言。
作者:海鹏
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/258175.html
