我們的PHP Scraper API允許將GrabzIt Web Scraper的功能添加到您的應用程序中。 這比通常由PHP抓取應用程序實現的簡單HTML DOM解析器要好得多。
首先必須 刮擦。 然後要解析您應用中的網絡,您必須 下載 PHP庫。 最後,首先開始下載中的示例處理程序。
處理已抓取數據的最簡單方法是將數據作為JSON或XML對象進行訪問。 這樣可以輕鬆處理和查詢數據。 JSON將以以下通用格式構造,並將數據集名稱作為對象屬性。 它本身包含一個對像數組,每個列名都作為另一個屬性。
{ "Dataset_Name": [ { "Column_One": "https://grabz.it/", "Column_Two": "Found" }, { "Column_One": "http://dfadsdsa.com/", "Column_Two": "Missing" }] }
首先必須記住,將向處理程序發送所有提取的數據。 這可能包括無法轉換為JSON或XML對象的數據。 因此,在處理之前,必須檢查您接收到的數據類型。
$scrapeResult = new \GrabzIt\Scraper\ScrapeResult(); if ($scrapeResult->getExtension() == 'json') { $json = $scrapeResult->toJSON(); foreach ($json->Dataset_Name as $obj) { if ($obj->Column_Two == "Found") { //do something } else { //do something else } } } else { //probably a binary file etc save it $scrapeResult->save("results/".$scrapeResult->getFilename()); }
上面的示例顯示瞭如何遍歷數據集的所有結果 Dataset_Name
。 然後針對每個結果,根據 Column_Two
屬性。 另外,如果處理程序收到的文件不是JSON文件,那麼它僅僅是 saved到結果目錄。 儘管ScrapeResult類確實嘗試確保所有發布的文件都來自GrabzIt的服務器。 文件的擴展名也應該在被檢查之前 saved.
下面列出的是ScrapeResult類的所有方法,可用於處理抓取結果。
調試PHP處理程序的最佳方法是從以下位置下載結果以進行抓取: 網頁抓取 頁。 然後 save 您在可訪問位置遇到問題的文件。 然後,可以將該文件的路徑傳遞到ScrapeResult類的構造函數。 如下所示,這使您可以調試處理程序,而不必每次都進行新的抓取。
$scrapeResult = new \GrabzIt\Scraper\ScrapeResult("data.json"); //the rest of your handler code remains the same
使用GrabzIt的Web Scraper API,您可以更改刮擦的狀態。 通過根據需要遠程啟動,停止,啟用或禁用刮擦。 在下面的示例中顯示。 通過將刮擦的ID以及所需的刮擦狀態傳遞給 SetScrapeStatus
方法。
$client = new \GrabzIt\Scraper\GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret"); //Get all of our scrapes $myScrapes = $client->GetScrapes(); if (empty($myScrapes)) { throw new Exception("You haven't created any scrapes yet! Create one here: https://grabz.it/scraper/scrape/"); } //Start the first scrape $client->SetScrapeStatus($myScrapes[0]->ID, "Start"); if (count($myScrapes[0]->Results) > 0) { //re-send first scrape result if it exists $client->SendResult($myScrapes[0]->ID, $myScrapes[0]->Results[0]->ID); }
下面列出了GrabzItScrapeClient類的所有方法和屬性,可用於控制Web抓取。