For the complete documentation index, see llms.txt. This page is also available as Markdown.

Push-Pull

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

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

Push-Pull é um método de integração assíncrono. Ao enviar a tarefa, você receberá prontamente uma JSON resposta contendo todos os detalhes da tarefa, incluindo parâmetros da tarefa, ID e URLs para download dos resultados e verificação de status. Assim que sua tarefa for processada, nós o atualizaremos por meio de uma JSON carga útil enviada ao seu servidor, se você forneceu uma 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).

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

Ponto de extremidade

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

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

Entrada

Forneça os parâmetros da tarefa em uma carga útil JSON como mostrado nos exemplos abaixo. Os exemplos em Python e PHP incluem comentários para clareza.

curl --user "USERNAME:PASSWORD" \
'https://data.oxylabs.io/v1/queries' \
-H "Content-Type: application/json" \
 -d '{"source": "universal", "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"}'
import requests
from pprint import pprint


# Structure payload.
payload = {
    "source": "universal", # Source you choose e.g. "universal"
    "url": "https://www.example.com", # Check the docs of the specific source to see whether you should use "url" or "query"
    "geo_location": "United States", # Some sources accept zip codes or coordinates
    #"render" : "html", # Uncomment if you want to render JavaScript within the page
    #"render" : "png", # Uncomment if you want to take a screenshot of a scraped web page
    #"parse" : True, # Check what sources support parsed data
    "callback_url": "https://your.callback.url", # Required if you use the callback listener
    "storage_type": "s3", 
    "storage_url": "s3://your.storage.bucket.url"
}

# Get response.
response = requests.request(
    'POST',
    'https://data.oxylabs.io/v1/queries',
    auth=('YOUR_USERNAME', 'YOUR_PASSWORD'), #Your credentials go here
    json=payload,
)

# Print prettified response to stdout.
pprint(response.json())

Saída

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

Dicionário de dados

A tabela abaixo descreve os campos retornados na resposta da tarefa. Para os parâmetros de entrada que você pode enviar, consulte a página de documentação da fonte que você está usando.

Chave
Descrição
Tipo

created_at

A data e hora em que a tarefa foi criada.

Cadeia de caracteres

client_id

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

Cadeia de caracteres

client_notes

Observações enviadas pelo cliente ao enviar uma tarefa.

Cadeia de caracteres

content_encoding

A codificação do conteúdo retornado. Defina-a em sua carga útil quando baixando imagens; ela é retornada na resposta da tarefa.

Cadeia de caracteres

id

O ID único da tarefa.

Cadeia de caracteres

statuses

Os códigos de status da tarefa de scraping ou parsing. Você pode ver os códigos de status descritos aqui.

Inteiro

status

O status da tarefa. pendente significa que a tarefa ainda está sendo processada. concluído significa que concluímos a tarefa. com falha significa que encontramos erros ao tentar concluir a tarefa -- e desistimos dela.

Cadeia de caracteres

subdomain

O subdomínio do site.

Cadeia de caracteres

updated_at

A data e hora em que a tarefa foi atualizada pela última vez. Para tarefas que foram concluídas (status está concluído ou com falha), essa data e hora indica quando a tarefa foi concluída.

Cadeia de caracteres

_links

A lista de links relacionados à entrada fornecida.

Array JSON

_links:rel

O tipo do link. self A URL contém os metadados da tarefa, enquanto results a URL contém os resultados da tarefa.

Cadeia de caracteres

_links:href

A URL do recurso.

Cadeia de caracteres

_links:href_list

A lista de URLs do recurso, uma por página. Retornado em vez de href em entradas cujo rel começa com results-content. Veja Recuperar conteúdo da tarefa.

Array JSON

_links:method

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

Cadeia de caracteres

Callback

O callback é uma POST solicitaçã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 extraído. Isso significa que você não precisa verificar o status da tarefa manualmente. Assim que 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 URL de callback válida ao enviar seu job, notificaremos você 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 que seu status foi definido como concluído.

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 atual status.

Ponto de extremidade

Entrada

Saída

Quando o job for concluído, a API responderá com as informações da consulta em formato JSON. O status do job será alterado para concluído, 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 da última atualização do job, permitindo acompanhar seu tempo de processamento.

Valores de status

Parâmetro
Descrição

pendente

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

concluído

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

com falha

Houve um problema com o job e não foi possível concluí-lo. Você não é cobrado por quaisquer com falha jobs.

Recuperar conteúdo da tarefa

Quando o job estiver pronto para ser recuperado, você pode usar a URL fornecida na resposta na rel:results seção. A URL terá a seguinte aparência: http://data.oxylabs.io/v1/queries/12345678900987654321/results.

A _links As URLs são retornadas com um http:// esquema. Substitua-o por https:// antes de chamá-las, para que suas credenciais não sejam enviadas sem criptografia.

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:

Para obter uma página isoladamente como conteúdo bruto, em vez de dentro de um objeto JSON, use o endpoint de conteúdo, onde {n} é o número da página, começando em 1. Os mesmos tipo valores se aplicam.

Entrada

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

Saída

Esta tabela explica o tipo de resultado padrão com base nos parâmetros incluídos no payload da solicitação da API.

Parâmetro Render
Parâmetro Parse
Parâmetro XHR
Saída padrão

-

-

-

html

html

-

-

html

html

-

true

xhr

html

true

true

parsed

png

-

-

png

-

true

-

parsed

html

true

-

parsed

png

true

-

png

Por padrão, o /results endpoint retorna apenas a saída padrão do seu payload. Para receber tipos de resultado adicionais, adicione o tipo parâmetro de consulta mostrado em Endpoints acima. Cada tipo solicitado é retornado como uma entrada separada no results array. Este é o vários tipos de resultado recurso, e funciona da mesma forma em Push-Pull e Realtime.

Abaixo está uma resposta de exemplo do /results endpoint. Junto com results, ele retorna um job objeto contendo os mesmos detalhes do job descritos no Dicionário de dados, abreviado aqui. Algumas fontes também retornam _request, _response e session_info em cada resultado.

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 capaz de aceitar requisições HTTP(S) recebidas ao enviar um job. Quando nosso sistema concluir o job, ele irá POST enviar um payload JSON para a URL fornecida, e o serviço 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 consulta ou url valores de parâmetro em uma única solicitação em lote.

Ponto de extremidade

O sistema processará cada consulta 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á job ids para todas as palavras-chave. Por exemplo, se você enviar 50 palavras-chave, retornaremos 50 job ids.

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

Entrada

Você precisa enviar os parâmetros da consulta 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 de 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 responderá com um objeto JSON, contendo as informações do job de cada job criado. A resposta será semelhante a esta:

Cada entrada carrega os mesmos campos que uma resposta de job única; {...} marca os campos omitidos aqui por brevidade.

Obter lista de endereços IP do Notifier

Talvez você queira colocar os IPs que enviam mensagens de callback para você na lista de permissões ou obter a lista desses IPs para outros fins. Você pode fazer isso GETobtendo este endpoint:

Ponto de extremidade

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 requisições de callback para o seu sistema:

Scheduler

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

Ele estende a funcionalidade da integração Push-Pull e é melhor usado junto com a integração Cloud funcionalidade.

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

Scheduler

Atualizado

Isto foi útil?