我们的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抓取。