【.com速译】Webscraping(网络爬虫请看:http://www.prowebscraper.com/blog/web-scraping-using-php/)是其中之一普通商业网站的常规功能。不同的网站在不同的应用场景下使用不同的爬取任务,包括产品信息和股票价格。同时,在网站系统的后台开发中,网络爬虫也备受关注。在程序员的圈子里,你会经常听到:有人开发并创造了一个高质量的解析器或“爬虫”。在这篇文章中,我们将与大家一起探讨一些实用的网络爬取库和工具,以满足您直接抓取网站信息和数据的业务需求。在PHP环境下,您可以使用以下工具库来执行与网络抓取相关的各种操作:GoutteSimpleHTMLDOMhtmlSQLcURLRequestsHTTPfulBuzzGuzzle1。Goutte简介:Goutte库的神奇之处在于它可以为您提供如何使用PHP技术爬取各种内容的详细支持。Goutte,基于Symfony框架,是专门针对网站爬虫类的工具库。Goutte的实用性在于它不仅提供了各种API可以用来抓取网站信息,还可以从HTML和XML响应信息中抓取各种数据。Goutte持有麻省理工学院颁发的执照。特点:适用于大型项目。基于OOP(面向对象编程)。具有中速解析能力。环境要求:需要PHP5.5或更高版本和Guzzle6或更高版本(见下文)的环境。文档链接:https://goutte.readthedocs.io/en/latest/扩展阅读:https://menubar.io/php-scraping-tutorial-scrape-reddit-with-goutte2.SimpleHTMLDOM简介:HTMLDOM解析编译器由PHP5或以上编写。它的优点是可以让您轻松方便地访问和使用HTML来开展您的工作。通过它,你可以像使用jQuery一样在HTML页面上快速找到那些带有选择器的标签。只需一行HTML代码即可抓取内容。与本文介绍的其他工具库相比,它的运行速度不是很快。SimpleHTMLDOM持有麻省理工学院颁发的许可证。特点:它能够支持那些无效的HTML。环境要求:需要PHP5以上的环境。文档链接:http://simplehtmldom.sourceforge.net/manual.htm扩展阅读:http://www.prowebscraper.com/blog/web-scraping-using-php/3。htmlSQL简介:其实是一个实验性的PHP库。它的实用性在于:通过它,可以使用类似SQL的语法访问HTML的各种值。因此,无需编写复杂的函数或正则表达式,就可以轻松获取一些特定的值。如果您是SQL的忠实粉丝,您也会喜欢这个实验性的抓取库。您可以将它用于任何类型的杂项任务,以及用于快速解析网页。虽然早在2006年就停止了更新和支持,但htmlSQL仍然是一个可靠的解析工具和爬虫库。htmlSQL持有BSD颁发的许可证。特点:它提供相对快速的解析访问,但功能有限。环境要求:各种风格的PHP4以上环境。Snoopy的PHP类(版本1.2.3,需要Web传输)。文档链接:https://github.com/hxseven/htmlSQL扩展阅读:https://github.com/hxseven/htmlSQL/tree/master/examples4。cURL简介:众所周知,cURL是一个非常流行的从网页中提取数据的工具库。它属于PHP的内置组件。作为一个标准的PHP库,它不包含任何第三方文件和类。环境要求:使用PHP的cURL功能时,只需要安装?libcurl包(详见http://curl.haxx.se/)。当然,作为PHP,它需要libcurl版本7.10.5或更高版本。文档链接:http://php.net/manual/ru/book.curl.php扩展阅读:http://scraping.pro/scraping-in-php-with-curl/5.Requests介绍:是一个An用PHP编写的HTTP库。它的API主要基于优秀的RequestsPython库。您可以通过Requests发送HEAD、GET、POST、PUT、DELETE和PATCHHTTP请求。使用Requests,您可以使用简单的数组来添加标头、表单数据、多个文件和参数,并以相同的方式访问各种响应数据。Requests持有ISC颁发的许可证。特点:持有国际域名和网址。支持浏览器样式的SSL身份验证。提供基本和摘要认证。自解压功能(AutomaticDecompression)。连接超时管理。环境要求:需要PHP5.2或更高版本。参考文档:https://github.com/rmccue/Requests/blob/master/docs/README.md6。HTTPful简介:HTTPful是一个非常简单的PHP库。由于其设计初衷是让HTTP具有可读性,因此可以作为链接使用,具有一定的可读性。之所以被公认为非常实用,是因为它可以让开发者专注于与API交互,而不必关注那些set_opt页面。同时,它也是一个非常优秀的PHPREST客户端。HTTPful持有麻省理工学院颁发的许可证。特点:可读地支持多种HTTP方法(GET、PUT、POST、DELETE、HEAD、PATCH和OPTIONS)。可定制的标头(Headers)。可以自动和“智能”地解析。可以自动序列化负载(PayloadSerialization)。支持基本身份验证。提供客户端证书的身份验证。带有请求的“模板”。环境要求:需要PHP5.3或更高版本。文档链接:http://phphttpclient.com/docs/7。Buzz简介:Buzz是一个实用的轻量级工具库,可以用来发出HTTP请求。Buzz的设计虽然比较简单,但是具有各种Web浏览器的特点。Buzz持有麻省理工学院颁发的许可证。特点:简单的API。具有高性能。环境要求:需要PHP7.1版本。文档链接:https://github.com/kriswallsmith/Buzz/blob/master/doc/index.md扩展阅读:https://github.com/kriswallsmith/Buzz/tree/master/examples8。Guzzle简介:作为一个非常好用的PHPHTTP客户端,Guzzle允许您以简单的方式发送各种HTTP请求。同时,它还可以方便地与Web服务集成。特点:通过其简单的界面,您可以构造各种查询字符串、POST请求、海量流式上传和下载、HTTPcookie和可上传的JSON数据。它可以在同一个接口的帮助下同步和异步发送各种请求。它可以将PSR-7接口用于各种请求、响应和数据流。您可以使用它来使用Guzzle的其他PSR-7兼容库。通过抽象掉底层的HTTP传输,您可以使用它来编写独立于环境和传输的程序代码,即:对cURL、PHP流、套接字或非阻塞事件循环没有强依赖性。它的中间件系统使您能够扩展和组合客户端的各种行为。环境要求:需要PHP5.3.3或以上版本。文档链接:http://docs.guzzlephp.org/en/stable/扩展阅读:https://lamp-dev.com/scraping-products-from-walmart-with-php-guzzle-crawler-and-doctrine/958结论综上所述,每个网络爬虫工具都有自己的特点和环境要求。希望以上列表可以帮助您更好地理解这些PHP库和工具。大家可以选择适合自己网站系统的工具进行尝试调试。原标题:8AwesomePHPWebScrapingLibrariesandTools,作者:HirenPatel