自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

八大神奇的網絡爬取庫與工具

譯文
開發(fā) 后端 開發(fā)工具
在本文中,我們將和您探討八種實用的網絡爬取庫與工具,以滿足您直接抓取網站信息和數據的業(yè)務需求。

[[261366]]

【51CTO.com快譯】網絡爬取(Web scraping,請詳見:http://www.prowebscraper.com/blog/web-scraping-using-php/)是普通商業(yè)網站的常規(guī)功能之一。不同的網站在不同的應用場景下,會用到不同的爬取任務,其中包括:產品信息和股票價格等方面。

與此同時,在網站系統(tǒng)的后端開發(fā)中,網絡爬取也是備受關注。在程序員的圈子內,您會經常聽到:又有人開發(fā)創(chuàng)建了高質量的解析器或“爬蟲”之類的新聞。

在本文中,我們將和您探討一些實用的網絡爬取庫與工具,以滿足您直接抓取網站信息和數據的業(yè)務需求。

在PHP環(huán)境中,您可以通過如下工具庫,來進行與網絡抓取相關的各項操作:

  1. Goutte
  2. Simple HTML DOM
  3. htmlSQL
  4. cURL
  5. Requests
  6. HTTPful
  7. Buzz
  8. Guzzle

1. Goutte

簡介:

  • Goutte庫的神奇之處在于:它可以為您提供如何通過使用PHP技術,來抓取各種內容的詳細支持。
  • 基于Symfony框架的Goutte,是一種網站爬取類別的專用工具庫。
  • Goutte的實用之處在于:它不但提供了各種可用來抓取網站信息的API,而且能夠從HTML和XML的響應信息中抓取各種數據。
  • Goutte持有MIT頒發(fā)的許可證。

特征:

  • 適用于大型項目。
  • 基于OOP(面向對象的程序設計)。
  • 具有中等速度的解析能力。

環(huán)境要求:

需要具有PHP 5.5以上和Guzzle 6以上(見下文)的環(huán)境。

文檔鏈接:

https://goutte.readthedocs.io/en/latest/

擴展閱讀:

https://menubar.io/php-scraping-tutorial-scrape-reddit-with-goutte

2. Simple HTML DOM

簡介:

  • HTML DOM解析器是由PHP 5以上的版本編寫而成。其優(yōu)勢在于:能夠讓您輕松、便捷地通過訪問和使用HTML,來開展工作。
  • 通過它,您可以像使用jQuery那樣,快速地在HTML頁面上找到那些帶有選擇器的標簽。
  • 您可以僅使用一行HTML代碼,來實現(xiàn)內容的抓取。
  • 與本文介紹到的其他工具庫相比,它的運行速度并不算快。
  • Simple HTML DOM持有MIT頒發(fā)的許可證。

特征:

  • 它能夠支持那些無效的HTML。

環(huán)境要求:

需要具有PHP 5以上的環(huán)境。

文檔鏈接:

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頒發(fā)的許可證。

特征:

  • 它能夠提供相對快速的解析訪問,但功能比較有限。

環(huán)境要求:

  • 各種風格的PHP 4以上環(huán)境。
  • Snoopy的PHP類(版本1.2.3,需選用Web傳輸)。

文檔鏈接:

https://github.com/hxseven/htmlSQL

擴展閱讀:

https://github.com/hxseven/htmlSQL/tree/master/examples

4. cURL

簡介:

  • 眾所周知,cURL是一款非常流行的、可用于從網頁中提取數據的工具庫。它屬于PHP的內置組件。
  • 作為一個標準的PHP庫,它并不包含任何第三方的文件和類。

環(huán)境要求:

  • 在使用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

簡介:

  • 它是一個用PHP編寫的HTTP庫。
  • 它的API主要基于那些優(yōu)秀的Requests Python庫。
  • 您能夠通過Requests來發(fā)送HEAD、GET、POST、PUT、DELETE以及PATCH HTTP等請求。
  • 通過Requests,您可以使用簡單數組,來添加標題、表單數據、多個文件和參數、并能以相同的方式訪問各種響應數據。
  • Requests持有ISC頒發(fā)的許可證。

特征:

  • 持有國際域名和URL。
  • 支持瀏覽器式的SSL驗證。
  • 提供基本和摘要式的身份驗證。
  • 自解壓功能(Automatic Decompression)。
  • 連接超時管理。

環(huán)境要求:

需要具有PHP 5.2以上的版本。

參考文檔:

https://github.com/rmccue/Requests/blob/master/docs/README.md

6. HTTPful

簡介:

  • HTTPful是一個非常簡單的PHP庫。由于其設計初衷是使得HTTP具有可讀性,因此它本身既可以被作為鏈接,又具備一定的可讀性。
  • 它被公認為非常實用的原因在于:它使得開發(fā)人員專注于與API的交互,而不必去關注那些set_opt頁面。同時,它也是一款十分優(yōu)秀的PHP REST客戶端。
  • HTTPful持有MIT頒發(fā)的許可證。

特征:

  • 可讀式地支持多種HTTP方法(GET、PUT、POST、DELETE、HEAD、PATCH和OPTIONS)。
  • 可自定義標題(Headers)。
  • 能夠自動且“智能”地進行解析。
  • 能夠自動進行載荷的序列化(Payload Serialization)。
  • 支持基本認證。
  • 提供客戶端證書的身份驗證。
  • 帶有請求的“模板”。

環(huán)境要求:

需要具有PHP 5.3以上的版本。

文檔鏈接:

http://phphttpclient.com/docs/

7.Buzz

簡介:

  • Buzz是一種實用的輕量級工具庫,您可以用它來發(fā)出HTTP請求。
  • 雖然Buzz的設計比較簡單,但是它具有各種Web瀏覽器的特性。
  • Buzz持有MIT頒發(fā)的許可證。

特征:

  • 簡單的API。
  • 具有高性能。

環(huán)境要求:

需要具有PHP 7.1版本。

文檔鏈接:

https://github.com/kriswallsmith/Buzz/blob/master/doc/index.md

擴展閱讀:

https://github.com/kriswallsmith/Buzz/tree/master/examples

8. Guzzle

簡介:

  • 作為一款非常實用的PHP HTTP客戶端,Guzzle能夠讓您以簡單的方式發(fā)送各種HTTP請求。同時,它也能很方便地與Web服務相集成。

特征:

  • 通過其簡單的界面,您可以構建出各種查詢字符串、POST請求、大量的流式上傳與下載、HTTP Cookie以及可上傳的JSON數據。
  • 它可以在同一個接口的幫助下,以同步和異步的方式發(fā)送各種請求。
  • 它能夠將PSR-7接口運用于各種請求、響應和數據流之中。您可以籍此使用Guzzle的其他PSR-7兼容庫。
  • 通過抽象出底層的HTTP傳輸,您可以用它來編寫出獨立于環(huán)境和傳輸的程序代碼,即:不會對cURL、PHP流、套接字或非阻塞事件的循環(huán)產生強依賴性。
  • 其中間件系統(tǒng)使您能夠擴充和組合客戶端的各種行為。

環(huán)境要求:

需要具有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

結論

綜上所述,每一種網絡爬取工具都具有自己的特點和環(huán)境要求。希望上述羅列能夠幫助您更好地了解這些PHP庫與工具。您可以從中挑選出適合于自己網站系統(tǒng)的工具進行試用與調試。

原文標題:8 Awesome PHP Web Scraping Libraries and Tools,作者:Hiren Patel

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2018-11-04 11:59:03

神經網絡機器學習深度學習

2018-11-01 14:59:42

2022-06-09 08:23:33

預測分析工具人工智能

2018-02-06 15:40:50

2016-08-24 15:39:46

ownCloud存儲服務器

2012-05-05 09:28:50

三星

2010-04-19 11:23:26

Oracle開發(fā)工具

2023-05-17 15:22:45

識別開源工具

2009-06-22 14:07:46

JSF優(yōu)勢

2019-11-21 09:46:19

漏洞補丁管理攻擊

2015-11-10 20:16:13

網絡詐騙網購安全

2011-04-29 09:15:16

Servlet

2024-04-24 09:52:19

云技能云遷移云計算

2012-01-10 10:39:12

云計算網絡管理

2021-03-10 10:30:09

網絡企業(yè)網絡趨勢

2011-01-26 09:28:32

PowerShellShell

2023-12-27 11:45:09

2025-01-02 12:51:06

2012-05-10 16:45:54

linux系統(tǒng)

2023-12-19 16:45:35

點贊
收藏

51CTO技術棧公眾號