Инструменты для захвата и конвертирования Интернета

PHP Scraper API с GrabzItPHP Scraper API

Наш PHP Scraper API позволяет добавить мощь GrabzIt Web Scraper в ваше приложение. Это гораздо лучшее решение, чем простые парсеры HTML DOM, обычно реализуемые PHP-приложениями.

Для начала ты должен создать царапину, Затем для разбора сети в вашем приложении вы должны скачать Библиотека 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

Ниже перечислены все методы класса ScrapeResult, которые можно использовать для обработки результатов очистки.

  • string getExtension() - получает расширение любого файла, полученного в результате очистки.
  • string getFilename() - получает имя файла любого файла, полученного в результате очистки.
  • object toJSON() - конвертирует любой файл JSON, полученный в результате очистки intо объект.
  • string toString() - преобразует любой файл, полученный в результате очистки, в string.
  • SimpleXMLElement toXML() - преобразует любой файл XML, полученный в результате очистки, в элемент XML.
  • boolean save($path) - saveЛюбой файл, полученный в результате очистки, возвращает true в случае успеха.

Отладка

Лучший способ отладить ваш обработчик PHP - это загрузить результаты для анализа из веб-царапины стр. затем save файл, с которым у вас возникла проблема, в доступном месте. Путь к этому файлу затем может быть передан в конструктор класса ScrapeResult. Это позволяет вам отлаживать ваш обработчик без необходимости каждый раз выполнять новую очистку, как показано ниже.

$scrapeResult = new \GrabzIt\Scraper\ScrapeResult("data.json");

//the rest of your handler code remains the same

Управление скребком

С помощью GrabzIt Web Scraper API вы можете изменить этот статус очистки. Путем удаленного запуска, остановки, включения или отключения очистки по мере необходимости. Это показано в примере ниже. Передавая идентификатор царапины вместе с желаемым состоянием царапины 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.aspx");
}
//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 Методы и свойства

Ниже перечислены все методы и свойства класса GrabzItScrapeClient, которые можно использовать для управления веб-скрепами.

  • GrabzItScrape[] GetScrapes() - возвращает все пользовательские заметки в виде массива объектов GrabzItScrape.
  • GrabzItScrape GetScrape($id) - возвращает объект GrabzItScrape, представляющий желаемую очистку.
  • SetScrapeProperty($id, $property) - устанавливает свойство царапины и возвращает true в случае успеха.
  • SetScrapeStatus($id, $status) - устанавливает состояние («Пуск», «Стоп», «Включить», «Отключить») очистки и возвращает true в случае успеха.
  • SendResult($id, $resultId) - повторно отправляет результат очистки и возвращает true в случае успеха.
    • Идентификатор очистки и идентификатор результата можно найти в методе GetScrape.
  • SetLocalProxy($proxyUrl) - устанавливает локальный прокси-сервер, который будет использоваться для всех запросов.