Push-Pull

Descubra o método de integração Push-Pull da Oxylabs Web Scraper API. Envie uma tarefa e depois consulte o endpoint de resultados mais tarde usando dados em formato JSON.

Push-Pull é nosso método de integração recomendado para lidar de forma confiável com grandes volumes de dados.

circle-check

Push-Pull é um método de integração assíncrono. Ao enviar o job, você receberá prontamente um JSON de resposta contendo todos os detalhes do job, incluindo parâmetros do job, ID e URLs para download dos resultados e verificação de status. Quando seu job for processado, enviaremos uma atualização por meio de um JSON payload enviado para o seu servidor, se você tiver fornecido uma callback URL. Os resultados permanecem disponíveis para recuperação por pelo menos 24 horas após a conclusão.

Com o Push-Pull, você pode enviar seus resultados diretamente para seu armazenamento em nuvem (Google Cloud Storage, AWS S3, Alibaba Cloud OSS ou outro armazenamento compatível com S3).

circle-info

Se você preferir não configurar um serviço para notificações de callback recebidas, você pode simplesmente recuperar seus resultados periodicamente (polling).

Você também pode explorar como o Push-Pull funciona usando Postman.

Job único

Endpoint

Este endpoint aceita apenas uma única consulta ou URL valor.

POST https://data.oxylabs.io/v1/queries

Entrada

Forneça os parâmetros do job em um payload JSON, como mostrado nos exemplos abaixo. Os exemplos em Python e PHP incluem comentários para clareza.

curl --user "user:pass1" \
'https://data.oxylabs.io/v1/queries' \
-H "Content-Type: application/json" \
 -d '{"source": "ENTER_SOURCE_HERE", "url": "https://www.example.com", "geo_location": "United States", "callback_url": "https://your.callback.url", "storage_type": "s3", "storage_url": "s3://your.storage.bucket.url"}'

Saída

A API responderá com um JSON contendo as informações do job, semelhante a isto:

Dicionário de dados

Para descrições detalhadas dos parâmetros de entrada do job, consulte a tabela abaixo ou as páginas de documentação específicas dos scrapers de seu interesse.

Chave
Descrição
Tipo

created_at

A data e hora em que o job foi criado.

String

client_id

O ID numérico associado ao nome de usuário do cliente que está fazendo a requisição.

String

client_notes

Notas enviadas pelo cliente ao enviar um job.

String

content_encoding

Adicione este parâmetro se você estiver baixando imagens. Saiba mais aqui.

String

id

O ID exclusivo do job.

String

statuses

O código de status do job de scraping ou parsing. Você pode ver os códigos de status descritos aqui.

Inteiro

status

O status do job. pending significa que o job ainda está sendo processado. done significa que concluímos o job. faulted significa que encontramos erros ao tentar concluir o job — e desistimos dele.

String

subdomain

O subdomínio do site.

String

updated_at

A data e hora em que o job foi atualizado pela última vez. Para jobs que foram concluídos (status é done ou faulted), esta data e hora indica quando o job foi finalizado.

String

links

A lista de links, relacionada à entrada fornecida.

Array JSON

links:rel

O tipo de link. self A URL contém os metadados do job, enquanto results A URL contém os resultados do job.

String

links:href

A URL do recurso.

String

links:método

O método HTTP que deve ser usado para interagir com uma determinada URL.

String

Callback

O callback é uma POST requisição que enviamos para sua máquina, informando que a tarefa de extração de dados foi concluída e fornecendo uma URL para baixar o conteúdo raspado. Isso significa que você não precisa verificar o status do job manualmente. Quando os dados estiverem aqui, avisaremos você, e tudo o que você precisa fazer agora é recuperá-los.

Entrada

Saída

Verificar status do job

Se você forneceu uma callback URL válida ao enviar seu job, nós vamos notificar você quando ele for concluído enviando um JSON payload para a callback URL especificada. Esse payload indicará que o job foi concluído e que seu status foi definido como done.

No entanto, se você enviou um job sem usar o serviço de callback, você pode verificar o status do job manualmente. Recupere a URL do href campo na rel:self seção da mensagem de resposta recebida após o envio do job. A URL para verificar o status do job será semelhante à seguinte: http://data.oxylabs.io/v1/queries/12345678900987654321. Consultar essa URL retornará as informações do job, incluindo seu status.

Endpoint

Entrada

Saída

Após a conclusão do job, a API vai responder com as informações da query em formato JSON. O status do job será alterado para done, indicando que o job foi concluído. Você pode recuperar o conteúdo consultando um dos links fornecidos. Além disso, a resposta incluirá o timestamp da última atualização do job, permitindo acompanhar seu tempo de processamento.

Valores de status

Parâmetro
Descrição

pending

O job ainda está sendo processado e não foi concluído.

done

O job foi concluído. Você pode recuperar o resultado consultando a URL fornecida no href campo na seção rel:results por exemplo: http://data.oxylabs.io/v1/queries/12345678900987654321/results.

faulted

Houve um problema com o job e não conseguimos concluí-lo. Você não será cobrado por nenhum faulted job.

Recuperar conteúdo do job

Assim que o job estiver pronto para ser recuperado, você pode usar a URL fornecida na resposta na rel:results seção. A URL será parecida com esta: http://data.oxylabs.io/v1/queries/7173957294344910849/results.

Endpoints

Você pode recuperar diferentes tipos de resultado usando os seguintes endpoints:

Você também pode recuperar vários tipos de resultado em uma única resposta, por exemplo:

Entrada

Abaixo estão exemplos de código demonstrando como usar o /results endpoint:

Saída

Esta tabela explica os tipos de resultado padrão e outros tipos disponíveis com base nos headers incluídos no payload da solicitação da API.

Parâmetro de render
Parâmetro de parse
Parâmetro XHR
Saída padrão
Saída disponível

x

x

x

html

html

html

x

x

html

html

html

x

true

xhr

html, xhr

html

true

true

parsed

html, xhr, parsed

png

x

x

png

html, png

x

true

x

parsed

html, parsed

html

true

x

parsed

html, parsed

png

true

x

png

html, parsed, png

Abaixo está uma resposta de exemplo do /results endpoint:

Os resultados podem ser recuperados automaticamente, sem verificar periodicamente o status do job, configurando o Callback serviço. Para isso, especifique a URL de um servidor que consiga aceitar solicitações HTTP(S) de entrada ao enviar um job. Quando o nosso sistema concluir o job, ele vai POST um payload JSON para a URL fornecida, e o serviço de Callback fará o download dos resultados conforme descrito no exemplo de implementação do Callback.

Consulta em lote

Scraper APIs suporta enviar até 5.000 valores de consulta ou url em uma única solicitação em lote.

circle-exclamation

Endpoint

enviada como um job separado. Se você fornecer uma callback URL, vai receber uma chamada separada para cada palavra-chave. Caso contrário, nossa resposta inicial conterá job consulta ou url s para todas as palavras-chave. Por exemplo, se você enviar 50 palavras-chave, nós retornaremos 50 job únicos ids. ids.

circle-info

IMPORTANTE: Com o endpoint /batch você só pode enviar listas de valores de consultaou urlparâmetro (dependendo da source que você usar). Todos os outros parâmetros devem ter valores únicos.

Entrada

Você precisa enviar os parâmetros da query como um payload JSON. Veja como enviar um job em lote:

Você pode notar que o exemplo de código acima não explica como o payload JSON deve ser formatado e aponta para um arquivo JSON pronto. Abaixo está o conteúdo do keywords.json arquivo, contendo vários consulta valores de parâmetro:

...e aqui está um keywords.json arquivo de entrada em lote, contendo várias URLs:

Saída

A API vai responder com um objeto JSON, contendo as informações do job para cada job criado. A resposta será parecida com esta:

Obter lista de IPs do Notifier

Talvez você queira colocar em whitelist os IPs que enviam mensagens de callback ou obter a lista desses IPs para outros fins. Você pode fazer isso obtendoeste endpoint:

Endpoint

Entrada

Os exemplos de código abaixo mostram como você pode acessar o /callbacker_ips endpoint:

Saída

A API vai retornar a lista de IPs que fazem solicitações de callback para o seu sistema:

Scheduler

Scheduler é um serviço que você pode usar para agendar jobs de scraping recorrentes.

Ele estende a funcionalidade da integração Push-Pull e é melhor usado em conjunto com a funcionalidade de Cloud integration .

Visite esta página para aprender como usar o recurso Scheduler:

Schedulerchevron-right

Atualizado

Isto foi útil?