Integração simples do lado do servidor
Begin with api_key and a URL-encoded url. Add method, location, rendering, response, or asynchronous options only when the workload requires them.
API de scraping
Envie uma URL e receba HTML, JSON ou campos selecionados. Gerenciamos proxies, novas tentativas e renderização JavaScript opcional para você focar na aplicação.
Um pedido gerenciado
Begin with api_key and a URL-encoded url. Add method, location, rendering, response, or asynchronous options only when the workload requires them.
WebScrapingAPI operates proxy routing, rotation, access-handling strategies, and internal target retries behind the API request.
Review managed featuresReturn the page body, a JSON envelope, a JSON DOM, customer-defined selected fields, or an explicit documented error state.
Review response formatsCaracterísticas de acesso automatizado
Configure o contexto do seu fluxo de trabalho. WebScrapingAPI opera a infraestrutura de acesso de suporte mantendo os estados de sucesso visíveis ao seu cliente.
01
O serviço seleciona e opera a rota de proxy por trás de cada contexto de solicitação suportado.
02
As estratégias de acesso automatizadas e as tentativas internas target reduzem a infraestrutura que o seu aplicativo tem de executar.
03
Os erros de validação, acesso, taxa e serviço permanecem explícitos para que o seu aplicativo possa lidar deliberadamente com pedidos que não tenham sucesso.
04
Set render_js=1 Quando a target precisa de execução do lado do cliente antes da resposta da página ser devolvida.
05
Solicitar um país documentado e contexto de cidade, estado ou ASN suportado quando a localização afeta a resposta.
06
Use métodos suportados, um corpo opcional, tempo de espera, recuperação assíncrona, modos JSON ou regras de extração.
Mantenha o corpo da página, envelope-o com metadados de solicitação, execute selectores na fronteira da API ou retira um resultado na fila mais tarde.
Use o corpo de página padrão com um parser existente.
Órgão de inspecção, cabeçalhos target, estado inicial, tipo, custo e metadados.
Execute selectores de CSS ou XPath de propriedade do cliente para texto, HTML, atributos, tabelas ou registros aninhados.
Enviar o trabalho de forma assíncrona e recuperar a resposta concluída usando o seu identificador.
Limite de extracção:WebScrapingAPI executa as regras fornecidas. Sua equipe possui o esquema, selectores, validação do campo de negócios e manutenção da mudança de fonte. Escolha API de dados ou Dados geridos quando essas obrigações devem passar para WebScrapingAPI.
Como funciona
Fornecer a chave API, target URL, e apenas o contexto documentado ou as opções de saída que a carga de trabalho precisa.
O serviço valida a solicitação, opera roteamento por proxy, aplica o tratamento de acesso e retestes internos e faz o JavaScript quando solicitado.
Use o corpo da página devolvida, envelope JSON, campos selecionados ou erro documentado dentro da sua aplicação existente.
Integração dos desenvolvedores
Mantenha a chave API do lado do servidor, codifique o URL target, comece com uma solicitação básica e adicione renderização, geografia ou extração apenas quando a carga de trabalho o requer.
01 · brief de integração
Enviar . api_key e um URL codificado url - Adicionar . render_js=1, contexto geográfico, modo de resposta ou regras de extracção apenas quando exigidas pelo target e pelo fluxo de trabalho a jusante.
WSA_API_KEY server-sidecurl --get --fail-with-body --max-time 120 \
"https://api.webscrapingapi.com/v2" \
--data-urlencode "api_key=$WSA_API_KEY" \
--data-urlencode "url=https://example.com/public-page" \
--data-urlencode "json_response=1"import os
import requests
response = requests.get(
"https://api.webscrapingapi.com/v2",
params={
"api_key": os.environ["WSA_API_KEY"],
"url": "https://example.com/public-page",
"json_response": 1,
},
timeout=120,
)
response.raise_for_status()
print(response.json())const params = new URLSearchParams({
api_key: process.env.WSA_API_KEY,
url: "https://example.com/public-page",
json_response: "1",
});
const response = await fetch(
"https://api.webscrapingapi.com/v2?" + params,
{ signal: AbortSignal.timeout(120_000) }
);
if (!response.ok) throw new Error("API status " + response.status);
console.log(await response.json());<?php
$query = http_build_query([
"api_key" => getenv("WSA_API_KEY"),
"url" => "https://example.com/public-page",
"json_response" => 1,
]);
$client = curl_init("https://api.webscrapingapi.com/v2?" . $query);
curl_setopt_array($client, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 120,
]);
$body = curl_exec($client);
$status = curl_getinfo($client, CURLINFO_RESPONSE_CODE);
$error = curl_error($client);
curl_close($client);
if ($body === false) throw new RuntimeException($error);
if ($status >= 400) throw new RuntimeException("API status " . $status);
echo $body;package main
import (
"fmt"
"io"
"net/http"
"net/url"
"os"
"time"
)
func main() {
params := url.Values{}
params.Add("api_key", os.Getenv("WSA_API_KEY"))
params.Add("url", "https://example.com/public-page")
params.Add("json_response", "1")
client := &http.Client{Timeout: 120 * time.Second}
response, err := client.Get(
"https://api.webscrapingapi.com/v2?" + params.Encode(),
)
if err != nil { panic(err) }
defer response.Body.Close()
if response.StatusCode >= 400 {
panic(fmt.Sprintf("API status %d", response.StatusCode))
}
body, err := io.ReadAll(response.Body)
if err != nil { panic(err) }
fmt.Println(string(body))
}import java.net.URI;
import java.net.URLEncoder;
import java.net.http.*;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
String query = "api_key=" + URLEncoder.encode(
System.getenv("WSA_API_KEY"), StandardCharsets.UTF_8
) + "&url=" + URLEncoder.encode(
"https://example.com/public-page", StandardCharsets.UTF_8
) + "&json_response=1";
var request = HttpRequest.newBuilder()
.uri(URI.create("https://api.webscrapingapi.com/v2?" + query))
.timeout(Duration.ofSeconds(120))
.GET().build();
var response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() >= 400) {
throw new RuntimeException("API status " + response.statusCode());
}
System.out.println(response.body());using System.Net;
var apiKey = WebUtility.UrlEncode(
Environment.GetEnvironmentVariable("WSA_API_KEY")
);
var target = WebUtility.UrlEncode(
"https://example.com/public-page"
);
var requestUrl =
"https://api.webscrapingapi.com/v2?api_key=" + apiKey +
"&url=" + target + "&json_response=1";
using var client = new HttpClient();
client.Timeout = TimeSpan.FromSeconds(120);
var response = await client.GetAsync(requestUrl);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());require "net/http"
require "uri"
uri = URI("https://api.webscrapingapi.com/v2")
uri.query = URI.encode_www_form(
api_key: ENV.fetch("WSA_API_KEY"),
url: "https://example.com/public-page",
json_response: 1
)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.open_timeout = 10
http.read_timeout = 120
response = http.get(uri.request_uri)
raise "API status #{response.code}" unless response.is_a?(Net::HTTPSuccess)
puts response.bodyPropriedade operacional
WebScrapingAPI
Sua equipe
Use the service only for eligible public webpages. Review source terms, applicable requirements, and the Acordo de serviço, then apply appropriate request, retention, and data-use policies.
Casos de utilização
Selecção do produto
Você opera o cliente HTTP, solicita política, retestes, análise e armazenamento. WebScrapingAPI fornece a rota da rede.
Fornecer um URL e opções de solicitação. WebScrapingAPI opera a recuperação e retorna o corpo da página ou a saída documentada.
Enviar uma solicitação REST com suporte do navegador com espera documentada, interações, etapas de navegação e controles de saída.
Enviar parâmetros de pesquisa e receber resultados estruturados de motores de pesquisa suportados.
Avalie uma coleção de várias páginas limitada quando a unidade de trabalho abrange páginas relacionadas em vez de um pedido.
Pergunte uma fonte suportada enquanto WebScrapingAPI opera acesso, extração específica de target e manutenção do parser.
Defina fontes, esquema, cadência, qualidade e destino enquanto WebScrapingAPI opera o programa contratado.
Orientação dos preços
Avaliação ao serviço próprio
Comece com o caminho HTTP básico, depois teste apenas os controles que a sua produção target mistura requer.
FAQ
API de scraping é um endpoint de solicitação do lado do servidor que recupera uma página web pública elegível enquanto WebScrapingAPI opera a infraestrutura de acesso por trás da solicitação.
A resposta padrão é o corpo da página recuperada. As opções documentadas podem retornar um envelope JSON, uma representação JSON DOM, campos selecionados com regras de extração ou um resultado assíncrono que o seu aplicativo retira mais tarde.
Sim. Configure render_js=1 quando uma página requer execução do JavaScript do lado do cliente antes da resposta ser devolvida. Use API de navegador quando o fluxo de trabalho precisa de uma sequência documentada de interações do navegador, espera de estado da página, cliques ou passos de navegação.
API de scraping suporta solicitações GET, POST, PUT e PATCH. Incluir um corpo de solicitação quando o método selecionado e o fluxo de trabalho target exigem um.
Os controles documentados incluem o país e o contexto de cidade, estado ou ASN suportados. A disponibilidade exata pode depender do plano, da geografia e da rota atuais, por isso confirme os locais necessários para a sua carga de trabalho.
Sim. As regras de extração de CSS ou XPath fornecidas pelo cliente podem retornar texto selecionado, HTML, atributos, tabelas, listas ou registros aninhados. Sua equipe possui os selectores, esquema, validação e manutenção de mudanças de fonte para essas regras.
Sim. Faça uma fila de solicitação com a opção documentada assíncrona, retenha o identificador devolvido e retira o resultado concluído mais tarde passando esse identificador como snapshot_id.
Inscreva o status e o corpo de erro HTTP documentados, use retry e backoff limitados quando apropriado e distingua uma falha da API do conteúdo que está presente, mas incompleto para o seu esquema de negócios.
O seu primeiro pedido
Use o teste gratuito com suas URLs e escolha um plano pelo volume de solicitações e opções necessárias.