Em primeiro lugar download a API do raspador da Web para Python e observe o manipulador de exemplo localizado dentro para começar.
A maneira mais fácil de processar dados raspados é acessar os dados como um objeto JSON ou XML, pois isso permite que os dados sejam facilmente manipulados e consultados. O JSON será estruturado no seguinte formato geral com o nome do conjunto de dados como atributo do objeto, contendo ele próprio uma matriz de objetos com cada nome de coluna como outro atributo.
{ "Dataset_Name": [ { "Column_One": "https://grabz.it/", "Column_Two": "Found" }, { " Column_One": "http://dfadsdsa.com/" , "Column_Two" : "Missing" }] }
Antes de tudo, deve-se lembrar que o manipulador receberá todos os dados raspados, que podem incluir dados que não podem ser convertidos em objetos JSON ou XML. Portanto, o tipo de dados que você está recebendo deve ser verificado antes de ser processado.
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())
O exemplo acima mostra como percorrer todos os resultados do conjunto de dados Dataset_Name
e executar ações específicas, dependendo do valor do Column_Two
atributo. Além disso, se o arquivo recebido pelo manipulador não for um arquivo JSON, será apenas saved para o diretório de resultados. Enquanto a classe ScrapeResult tenta garantir que todos os arquivos publicados sejam originários dos servidores do GrabzIt, a extensão dos arquivos também deve ser verificada antes de serem saved.
Listados abaixo estão todos os métodos da classe ScrapeResult que podem ser usados para processar resultados de raspagem.
A melhor maneira de depurar seu manipulador Python é fazer o download dos resultados de uma raspagem do diretório arranhões na web página, save o arquivo com o qual você está tendo problemas para um local acessível e, em seguida, passe o caminho desse arquivo para o construtor da classe ScrapeResult. Isso permite que você depure seu manipulador sem precisar fazer uma nova limpeza a cada vez, como mostrado abaixo.
scrapeResult = ScrapeResult.ScrapeResult("data.json"); #the rest of your handler code remains the same
Com a Web Scraper API do GrabzIt para Python, você pode iniciar, parar, ativar ou desativar remotamente uma raspagem, conforme necessário. Isso é mostrado no exemplo abaixo, onde o ID da raspagem junto com o novo status da raspagem é passado para o SetScrapeStatus
método.
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); }
Listados abaixo estão todos os métodos e propriedades da classe GrabzItScrapeClient que podem ser usados para controlar as raspas de estado.