Ferramentas para capturar e converter a Web

API do raspador da Web para Python

API do raspador Python

Em primeiro lugar download a API do raspador da Web para Python e observe o manipulador de exemplo localizado dentro para começar.

Processar dados raspados

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.

Métodos ScrapeResult

Listados abaixo estão todos os métodos da classe ScrapeResult que podem ser usados ​​para processar resultados de raspagem.

depuração

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

Controlando uma raspagem

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);
}

Métodos e propriedades de GrabzItScrapeClient

Listados abaixo estão todos os métodos e propriedades da classe GrabzItScrapeClient que podem ser usados ​​para controlar as raspas de estado.