Прежде всего скачать 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, которые можно использовать для обработки результатов очистки.
Лучший способ отладить ваш обработчик 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/') } //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, которые можно использовать для управления срезами состояния.