Push-Pull

Descubra o método de integração Push-Pull para a Oxylabs Web Scraper API. Submeta um job e depois consulte o endpoint de resultados mais tarde usando dados formatados em 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. Após o envio do job, você receberá prontamente uma JSON resposta contendo todos os detalhes do job, incluindo parâmetros do job, ID e URLs para download de resultados e verificação de status. Uma vez que seu job for processado, iremos notificá-lo via um JSON payload enviado ao seu servidor, se você forneceu um callback URL. Os resultados permanecem disponíveis para recuperação por pelo menos 24 horas após a conclusão.

Com 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 preferir não configurar um serviço para notificações de callback de entrada, 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 um único query ou URL valor.

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

Entrada

Forneça os parâmetros do job em um payload JSON conforme mostrado nos exemplos abaixo. Exemplos em Python e PHP incluem comentários para maior 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, parecido com isto:

Dicionário de dados

Para descrições detalhadas dos parâmetros de entrada do job, consulte a tabela abaixo ou refira-se às páginas de documentação específicas dos scrapers que lhe interessam.

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 fez a solicitação.

String

client_notes

Notas submetidas pelo cliente ao enviar um job.

String

content_encoding

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

String

id

O ID único 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.

Integer

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 completar o job — e desistimos.

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 estão finalizados (status is done ou faulted), essa data e hora indica quando o job foi finalizado.

String

links

A lista de links relacionados à 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 para o recurso.

String

links:método

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

String

Callback

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

Entrada

Saída

Verificar Status do Job

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

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

Endpoint

Entrada

Saída

Ao concluir o job, a API responderá com informações da query em formato JSON. O status do job será alterado para done, indicando que o job foi finalizado. Você pode recuperar o conteúdo consultando um dos links fornecidos. Além disso, a resposta incluirá o timestamp de quando o job foi atualizado pela última vez, permitindo que você acompanhe o 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 sob o rel:results seção, 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 é cobrado por quaisquer faulted jobs.

Recuperar Conteúdo do Job

Uma vez que o job esteja pronto para recuperação, você pode usar a URL fornecida na resposta sob a rel:results seção. A URL terá este formato: http://data.oxylabs.io/v1/queries/7173957294344910849/results.

Endpoints

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

Você também pode recuperar múltiplos tipos de resultados 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 disponíveis com base nos headers incluídos no payload da requisição API.

Parâmetro render
Parâmetro 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 um Callback serviço. Para fazer isso, especifique a URL de um servidor capaz de aceitar requisições HTTP(S) de entrada ao submeter um job. Quando nosso sistema concluir o job, ele irá 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 de Callback.

Consulta em Lote

Scraper APIs suporta o envio de até 5.000 query ou url valores de parâmetros dentro de uma única requisição em lote.

circle-exclamation

Endpoint

O sistema irá tratar cada query ou url enviado como um job separado. Se você fornecer uma URL de callback, receberá uma chamada separada para cada palavra-chave. Caso contrário, nossa resposta inicial conterá jobs idpara todas as palavras-chave. Por exemplo, se você enviou 50 palavras-chave, retornaremos 50 jobs únicos ids.

circle-info

IMPORTANTE: Com /batch endpoint, você só pode enviar listas de queryou urlvalores de parâmetros (dependendo do source que você usa). Todos os outros parâmetros devem ter valores singulares.

Entrada

Você precisa postar os parâmetros da query como um payload JSON. Veja como submeter 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 pré-criado. Abaixo está o conteúdo de keywords.json arquivo, contendo múltiplos query valores de parâmetro:

...e aqui está um keywords.json arquivo de entrada em lote, contendo múltiplas URLs:

Saída

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

Obter lista de endereços IP do Notifier

Você pode querer colocar na lista branca os IPs que enviam mensagens de callback para você ou obter a lista desses IPs para outros fins. Você pode fazer isso GETacessando este endpoint:

Endpoint

Entrada

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

Saída

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

Agendador

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 junto com o integração Cloud funcionalidade.

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

Agendadorchevron-right

Atualizado

Isto foi útil?