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

API Web Scraper для Python Python Scraper API

Прежде всего скачать Web Scraper API для Python и посмотрите на пример обработчика, расположенный внутри, чтобы начать.

Обработать очищенные данные

Самый простой способ обработки скребковых данных - это доступ к данным в виде объекта JSON или XML, поскольку это позволяет легко манипулировать данными и запрашивать их. JSON будет структурирован в следующем общем формате с именем набора данных в качестве атрибута объекта, который сам будет содержать массив объектов с каждым именем столбца в качестве другого атрибута.

{
  "Dataset_Name": [
    {
      "Column_One": "https://grabz.it/",
      "Column_Two": "Found"
    },
    {
      "Column_One": "http://dfadsdsa.com/",
      "Column_Two": "Missing"
    }]
}

Прежде всего следует помнить, что обработчику будут отправлены все очищенные данные, которые могут включать данные, которые нельзя преобразовать в объекты JSON или XML. Поэтому тип данных, которые вы получаете, должен быть проверен перед обработкой.

scrapeResult = ScrapeResult.ScrapeResult()

if scrapeResult.getExtension() == 'json':
    json = scrapeResult.toJSON()
    for json["Dataset_Name"] in 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.
  • xml.etree.ElementTree toXML() - преобразует любой файл XML, полученный в результате очистки, в элемент XML.
  • boolean save(path) - saveЛюбой файл, полученный в результате очистки, возвращает true в случае успеха.

Отладка

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

scrapeResult = ScrapeResult.ScrapeResult("data.json");

#the rest of your handler code remains the same

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

С помощью GrabzIt Web Scraper API для Python вы можете удаленно запускать, останавливать, включать или отключать очистку по мере необходимости. Это показано в примере ниже, где ID скрапа вместе с новым статусом скрапа передается SetScrapeStatus метод.

client = GrabzItScrapeClient.GrabzItScrapeClient("Sign in to view your Application Key", "Sign in to view your Application Secret")
//Get all of our scrapes
myScrapes = client.GetScrapes()
if (len(myScrapes) == 0)
{
    raise Exception('You have not created any scrapes yet! Create one here: https://grabz.it/scraper/scrape.aspx')
}
//Start the first scrape
client.SetScrapeStatus(myScrapes[0].ID, "Start")
if (len(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) - устанавливает локальный прокси-сервер для использования для всех запросов.