八款不错的PHP网页爬虫库

259f533d0c0648dcb5e302631e95cd1c.jpg


在后端开发中,抓取爬虫非常流行,也有一些开发者在为人们开发高质量的解析器和抓取工具。在本篇文章中,我们就探索一些爬虫库,这些库对网站抓取以及存储数据都就有用的。
 
在PHP中,我们使用以下库进行数据和内容抓取:
 

  1. Goutte
  2. Simple HTML DOM
  3. html SQL
  4. cURL
  5. Request
  6. HTTPful
  7. Buzz
  8. Guzzle

 1. Goutte
 

  • 说明:
    • [*]Goutte库很有用,它让PHP抓取内容更出色
    • 基于Symfony Framework
    • 提供API,可以从Ajax / XML响应中抓取内容
    • 基于MIT许可证
  • [/*]
  • [*]
  • 特点:
  • [*]
  • 适用于大型项目[/*]
  • [*]
  • 基于OOP开发[/*]
  • [*]
  • 中等解析速度[/*]

[/*]
[*]
要求:
  • [*]
  • 依赖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库,无需包含第三方文件和类
  • [/*]
  • [*]
  • 要求:
  • [*]
  • 要使用PHP的cURL函数,需安装libcurl,需要libcurl版本7.10.5或更高版本[/*]

[/*]
[*]
说明文档:
  • [*]
  • 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许可证
  • [/*]
  • [*]
  • 特点:
  • [*]
  • 支持SSL验证[/*]
  • [*]
  • 基本/摘要身份验证[/*]
  • [*]
  • 自动解压缩[/*]
  • [*]
  • 连接超时处理[/*]

[/*]
[*]
要求:
  • [*]
  • 需要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许可证
  • [/*]
  • [*]
  • 特征:
  • [*]
  • 可读的HTTP支持(GET,PUT,POST,DELETE,HEAD,PATCH和OPTIONS)[/*]
  • [*]
  • 可自定义 Header[/*]
  • [*]
  • 自动“智能化”解析。[/*]
  • [*]
  • 自动有效载荷序列化。[/*]
  • [*]
  • 基本验证[/*]
  • [*]
  • 客户端证书验证[/*]
  • [*]
  • 支持请求“模板”。[/*]

[/*]
[*]
要求:
  • [*]
  • PHP版本5.3+[/*]

[/*]
[*]
说明文件:
  • [*]
  • http://phphttpclient.com/docs/[/*]

[/*]
[/list]
 
 7. Buzz
 

  • 描述:
    • [*]Buzz非常有用,它是一个轻量级的库,可轻松发出HTTP请求
    • 设计简单,具有Web浏览器特性
    • 使用MIT许可证
  • [/*]
  • [*]
  • 特征:
  • [*]
  • API简单[/*]
  • [*]
  • 性能高[/*]

[/*]
[*]
要求:
  • [*]
  • 需要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服务集成也很容易
  • [/*]
  • [*]
  • 特点:
  • [*]
  • 有一个简单的界面,可帮助构建查询字符串,POST请求,流式传输大文件,流式传输下载文件,使用HTTP cookie,上传JSON数据等[/*]
  • [*]
  • 可以在同一接口的帮助下发送同步和异步请求[/*]
  • [*]
  • 它利用PSR-7接口处理请求,响应和流。这使您可以在Guzzle中使用其他PSR-7兼容的库[/*]
  • [*]
  • 它可以抽象出底层的HTTP传输,使您能够编写环境并传输不可知代码。即对cURL,PHP流,套接字或非阻塞事件循环没有强依赖[/*]
  • [*]
  • 中间件系统能够增强客户端行为[/*]

[/*]
[*]
要求:
  • [*]
  • 需要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

(0)
上一篇 2022年5月20日 08:37
下一篇 2022年5月20日 08:39

相关推荐

发表回复

登录后才能评论