Como Usar AdsPower com Beautiful Soup para Raspagem de Dados
Take a Quick Look
Aprenda a combinar o navegador anti-detecção AdsPower com Beautiful Soup para raspagem de dados confiável e resistente a bloqueios. Configuração passo a passo, exemplos de código e casos de uso.
🔥 Limited-Time Offer! Save extra 10% off on your first monthly plan with code: Anitdetect10
Sign upComo Usar AdsPower com Beautiful Soup para Raspagem de Dados
A raspagem web com requests Python puro frequentemente encontra obstáculos: sites modernos detectam tráfego automatizado por meio de impressões digitais do navegador, falta de execução de JavaScript e reputação de IP. AdsPower e Beautiful Soup resolvem metades opostas desse problema. AdsPower fornece um ambiente de navegador real e isolado com uma impressão digital única e proxy opcional; Beautiful Soup fornece análise HTML rápida e legível uma vez que a página é carregada. Juntos, eles criam uma stack de raspagem que parece humana para o site alvo e permanece sustentável no seu código.
Este guia explica por que a combinação funciona, como conectar o AdsPower ao seu script Python e como entregar o HTML renderizado ao Beautiful Soup para extração. Você também encontrará exemplos práticos para e-commerce, mídias sociais e fluxos de trabalho multi-contas.
Por que Combinar AdsPower e Beautiful Soup?

Beautiful Soup product interface.
AdsPower é um navegador anti-detecção que cria perfis de navegador isolados, cada um com sua própria impressão digital cobrindo Canvas, WebGL, user agent, fontes e outros parâmetros. Ele também suporta proxies para que cada perfil possa parecer vir de um endereço IP diferente. Isso torna muito mais difícil para plataformas como Amazon, Facebook ou TikTok vincular sua atividade de raspagem a uma única identidade e bloqueá-la.
Beautiful Soup é uma biblioteca Python que analisa documentos HTML e XML. Ela não renderiza JavaScript nem gerencia sessões de navegador. Ela se destaca em navegar pela árvore de análise, buscar elementos e extrair texto limpo ou atributos com código mínimo.
A lacuna entre os dois é preenchida por um driver de automação de navegador. AdsPower expõe uma API Local que permite iniciar um perfil e conectar-se a ele via Selenium ou Puppeteer. Selenium controla o navegador Chromium real dentro do perfil AdsPower, aguarda o JavaScript terminar e retorna o código-fonte da página totalmente renderizado. Beautiful Soup então analisa esse código-fonte.
Este pipeline oferece três vantagens:
- Isolamento de impressão digital: Cada perfil AdsPower parece um dispositivo diferente, reduzindo a chance de os sites correlacionarem suas solicitações.
- Suporte a JavaScript: Selenium executa scripts na página, permitindo raspar conteúdo que só aparece após a renderização.
- Análise limpa: Beautiful Soup mantém a lógica de extração simples e legível, sem regex frágil ou cadeias de XPath.
Que Problemas Esta Combinação Resolve?

Beautiful Soup product interface.
Raspar apenas com requests e Beautiful Soup frequentemente falha em sites protegidos. O servidor vê um user agent Python, cabeçalhos de navegador ausentes e um IP de datacenter. Ele responde com um CAPTCHA, um 403 ou uma página falsa. AdsPower aborda os sinais do lado do navegador; um proxy residencial ou ISP configurado dentro do perfil aborda os sinais do lado da rede.
Beautiful Soup sozinho também não pode interagir com uma página. Se um site carrega preços de produtos por meio de uma chamada XHR após o HTML inicial, um analisador estático não vê nada. Selenium dentro do perfil AdsPower aguarda essas chamadas serem concluídas. Você pode até rolar ou clicar para acionar o carregamento preguiçoso antes de extrair o HTML.
Para equipes que gerenciam várias contas, o sistema de perfis em lote do AdsPower significa que cada trabalho de raspagem pode ser executado em seu próprio ambiente isolado. Um perfil pode raspar o catálogo de um concorrente enquanto outro monitora suas próprias listagens de loja, sem cookies ou armazenamento compartilhados entre eles.
Pré-requisitos
Antes de escrever código, certifique-se de ter:
- AdsPower instalado no Windows, Mac ou Linux. O teste gratuito é suficiente para testar o fluxo de trabalho.
- Python 3.8 ou mais recente na sua máquina.
- A API Local do AdsPower habilitada. No aplicativo de desktop AdsPower, vá em Configurações > Configurações de API e anote a porta da API (geralmente 50325).
- Um perfil de navegador já criado no AdsPower. Anote o ID do perfil, que você pode encontrar na lista de perfis ou clicando no perfil e verificando a URL.
- Pacotes Python instalados:
pip install requests selenium beautifulsoup4 lxml
O analisador lxml é opcional, mas recomendado para velocidade e tolerância a HTML bagunçado.
Passo 1: Conectar a um Perfil AdsPower via API Local
A API Local do AdsPower é executada na sua máquina e aceita solicitações HTTP. Os dois endpoints que você precisa são:
GET /api/v1/user/list— retorna todos os perfis com seus IDs.GET /api/v1/browser/start?user_id=...— inicia um perfil e retorna os detalhes de conexão do WebDriver Selenium.
Aqui está uma função mínima que inicia um perfil e retorna um driver Selenium:
import requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
ADSPOWER_API = "http://127.0.0.1:50325"
def start_adspower_profile(profile_id):
# Peça ao AdsPower para abrir o perfil
resp = requests.get(
f"{ADSPOWER_API}/api/v1/browser/start",
params={"user_id": profile_id}
)
data = resp.json()
if data["code"] != 0:
raise RuntimeError(f"Erro AdsPower: {data['msg']}")
# Conecte o Selenium ao navegador que o AdsPower acabou de abrir
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", data["data"]["ws"]["selenium"])
driver = webdriver.Chrome(options=chrome_options)
return driver
Se você não souber o ID do seu perfil, liste todos os perfis primeiro:
profiles = requests.get(f"{ADSPOWER_API}/api/v1/user/list").json()
for p in profiles["data"]["list"]:
print(p["user_id"], p.get("name"))
Passo 2: Adicionar um Proxy ao Perfil
Um proxy não é estritamente necessário, mas melhora significativamente as taxas de sucesso em plataformas rigorosas. AdsPower suporta proxies HTTP, HTTPS e SOCKS5. Você pode configurar o proxy nas configurações do perfil AdsPower antes de iniciá-lo, ou passar parâmetros de proxy através da API Local ao iniciar.
Para proxies residenciais ou ISP, o provedor fornece host, porta, nome de usuário e senha. Insira-os nas configurações de proxy do perfil. Se você está comparando provedores de proxy, um detalhamento dos preços e planos da IPRoyal pode ajudar a escolher um plano residencial que se ajuste ao seu volume de raspagem. Para opções mais amplas, veja as principais redes de proxy residencial testadas e classificadas.
Um padrão comum é dedicar um perfil AdsPower por site alvo ou por conta, cada um com seu próprio proxy. Isso mantém a reputação do IP separada e reduz a contaminação cruzada se um perfil for sinalizado.
Passo 3: Navegar e Capturar HTML Renderizado
Uma vez que o driver está conectado, use Selenium para carregar a URL alvo e aguardar o conteúdo aparecer. Em seguida, passe driver.page_source para Beautiful Soup.
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
driver = start_adspower_profile("seu_id_de_perfil_aqui")
driver.get("https://www.example.com/products")
# Aguarde um elemento-chave renderizar
WebDriverWait(driver, 15).until(
EC.presence_of_element_located((By.CSS_SELECTOR, ".product-card"))
)
html = driver.page_source
soup = BeautifulSoup(html, "lxml")
Para páginas que carregam mais conteúdo ao rolar, adicione um loop de rolagem antes de capturar o código-fonte:
for _ in range(3):
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(2)
Passo 4: Extrair Dados com Beautiful Soup

Beautiful Soup product interface.
Agora você pode usar os métodos de busca e navegação do Beautiful Soup. Aqui está um exemplo que extrai nomes de produtos, preços e links de uma página de e-commerce genérica:
products = []
for card in soup.select(".product-card"):
name_el = card.select_one(".product-title")
price_el = card.select_one(".product-price")
link_el = card.select_one("a")
products.append({
"name": name_el.get_text(strip=True) if name_el else None,
"price": price_el.get_text(strip=True) if price_el else None,
"url": link_el["href"] if link_el else None,
})
print(products)
Os métodos select() e select_one() do Beautiful Soup aceitam seletores CSS, que geralmente são mais fáceis de manter do que longas expressões XPath. Para páginas com marcação inconsistente, find() com argumentos de palavra-chave oferece uma busca mais tolerante.
Passo 5: Exportar e Fechar Corretamente
Converta os dados extraídos para um arquivo CSV ou JSON, depois feche o driver e diga ao AdsPower para fechar o perfil:
import pandas as pd
pd.DataFrame(products).to_csv("products.csv", index=False)
driver.quit()
requests.get(
f"{ADSPOWER_API}/api/v1/browser/stop",
params={"user_id": "seu_id_de_perfil_aqui"}
)
Sempre pare o perfil através da API em vez de apenas chamar driver.quit(). Isso libera recursos dentro do AdsPower e mantém o estado do perfil consistente para a próxima execução.
Exemplo Prático: Raspagem de uma Página de Resultados de Busca
Aqui está um script completo que combina todos os passos. Ele abre um perfil AdsPower, pesquisa em um marketplace, aguarda os resultados e os analisa com Beautiful Soup.
import time
import requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
ADSPOWER_API = "http://127.0.0.1:50325"
PROFILE_ID = "seu_id_de_perfil_aqui"
SEARCH_URL = "https://www.example.com/s?q=laptop"
def start_profile(profile_id):
resp = requests.get(
f"{ADSPOWER_API}/api/v1/browser/start",
params={"user_id": profile_id}
)
data = resp.json()
if data["code"] != 0:
raise RuntimeError(data["msg"])
opts = Options()
opts.add_experimental_option("debuggerAddress", data["data"]["ws"]["selenium"])
return webdriver.Chrome(options=opts)
def stop_profile(profile_id):
requests.get(
f"{ADSPOWER_API}/api/v1/browser/stop",
params={"user_id": profile_id}
)
driver = start_profile(PROFILE_ID)
try:
driver.get(SEARCH_URL)
WebDriverWait(driver, 15).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "[data-testid='result-item']"))
)
time.sleep(2)
soup = BeautifulSoup(driver.page_source, "lxml")
results = []
for item in soup.select("[data-testid='result-item']"):
title = item.select_one("h2")
price = item.select_one(".price")
results.append({
"title": title.get_text(strip=True) if title else "",
"price": price.get_text(strip=True) if price else "",
})
for r in results:
print(r)
finally:
driver.quit()
stop_profile(PROFILE_ID)
Ajuste os seletores CSS para corresponder ao site que você está alvo. Use as ferramentas de desenvolvedor do navegador para inspecionar elementos e confirmar quais seletores identificam de forma confiável os dados que você precisa.
AdsPower + Beautiful Soup vs. Outras Abordagens

Beautiful Soup product interface.
| Abordagem | Suporte a JavaScript | Isolamento de impressão digital | Complexidade de configuração | Melhor para |
|---|---|---|---|---|
| requests + Beautiful Soup | Não | Não | Baixa | Sites estáticos simples sem proteção contra bots |
| Selenium + Beautiful Soup | Sim | Não (impressão digital padrão do navegador) | Média | Sites dinâmicos com proteção leve |
| AdsPower + Selenium + Beautiful Soup | Sim | Sim (impressão digital por perfil) | Média-alta | Sites protegidos, raspagem multi-contas, trabalhos de alto volume |
| AdsPower + Puppeteer | Sim | Sim | Média (Node.js) | Equipes que já usam ferramentas JavaScript |
Se sua equipe prefere JavaScript a Python, o AdsPower também integra com Puppeteer. O guia de configuração completo para AdsPower com Puppeteer cobre o equivalente Node.js deste fluxo de trabalho. Para uma visão mais ampla de como o AdsPower se compara a outros navegadores anti-detecção em isolamento de impressão digital e automação, veja a comparação AdsPower vs MuLogin vs Maskfog.
Armadilhas Comuns e Como Evitá-las
Perfil não inicia: Certifique-se de que o aplicativo de desktop AdsPower está em execução e a API Local está habilitada. A API só funciona enquanto o aplicativo está aberto.
Selenium não consegue conectar: O valor debuggerAddress da resposta da API deve ser passado exatamente. Se você vir um erro de conexão, verifique se a porta na resposta corresponde à que o Selenium está usando.
Código-fonte da página vazio ou incompleto: A página pode ainda estar carregando. Use esperas explícitas (WebDriverWait) em vez de sleeps fixos. Aguarde um elemento específico que indique que os dados foram renderizados.
Recebendo CAPTCHAs apesar do AdsPower: A impressão digital do perfil ajuda, mas a reputação do IP também importa. Use um proxy residencial ou ISP dentro do perfil e evite enviar muitas solicitações em um curto período. Randomize os atrasos entre carregamentos de página.
Beautiful Soup não retorna nada: Os seletores podem não corresponder ao DOM atual. Salve driver.page_source em um arquivo e inspecione manualmente para confirmar que os elementos existem e identificar os seletores corretos.
Leitura relacionada
- Revisão do Navegador Anti-Detecção MuLogin 2026: Vale a Pena? - Revisão do MuLogin baseada em evidências cobrindo preços, impressão digital, configuração, pontos fortes, limitações e como ele se compara a alternativas para gerenciamento de múltiplas contas.
Fontes e leitura adicional
- Aqui está como usar o Walmart Scraper para raspar dados valiosos - Raspar o Walmart é desafiador, mas possível. Este guia é sobre usar um raspador Walmart para extrair detalhes de produtos, usando ferramentas sem código ou codificação.
- Como raspar o LinkedIn: 3 métodos com e sem codificação - Você é um representante de vendas buscando métodos simples de geração de leads? Leia este blog para aprender três maneiras de raspar o LinkedIn, com ou sem codificação.
- Integrações de Proxy | Funciona com AdsPower, GoLogin, Scrapy e mais | ProxyOmega - Configure proxies residenciais ProxyOmega com navegadores antidetecção, frameworks de raspagem e gerenciadores de proxy — AdsPower, GoLogin, Multilogin, Scrapy, Playwright, Puppeteer, FoxyProxy e mais. HTTP, HTTPS e SOCKS5 em todas as portas.
Perguntas Frequentes
É legal raspar sites com AdsPower e Beautiful Soup?
A legalidade da raspagem web depende dos termos de serviço do site alvo, do tipo de dados que você coleta e da sua jurisdição. Muitos sites proíbem acesso automatizado em seus termos. Sempre revise as políticas do site, respeite o robots.txt quando aplicável e evite raspar dados pessoais sem uma base legal. AdsPower e Beautiful Soup são ferramentas neutras; como você as usa determina a conformidade.
Preciso saber Python para usar esta configuração?
Sim, o fluxo de trabalho com Beautiful Soup requer Python. Se você prefere opções sem código, o recurso RPA do AdsPower pode automatizar algumas ações do navegador sem escrever scripts, mas não oferece a mesma flexibilidade de análise que o Beautiful Soup.
Posso executar vários trabalhos de raspagem ao mesmo tempo?
Sim. O AdsPower suporta lançamento de perfis em lote. Você pode iniciar vários perfis através da API Local, conectar um driver Selenium a cada um e executá-los em paralelo usando threading ou asyncio do Python. Dê a cada perfil seu próprio proxy para evitar sobreposição de IP.
O Beautiful Soup funciona com sites pesados em JavaScript?
Beautiful Soup apenas analisa HTML; ele não executa JavaScript. É por isso que o fluxo de trabalho usa Selenium dentro do perfil AdsPower para renderizar a página primeiro. Uma vez que o HTML renderizado é capturado, o Beautiful Soup cuida da análise.
Como isso é diferente de usar Puppeteer com AdsPower?
Puppeteer é uma biblioteca Node.js que controla o Chrome e também pode extrair dados diretamente do DOM. Beautiful Soup é uma biblioteca de análise Python que trabalha com strings HTML. A stack AdsPower + Selenium + Beautiful Soup é uma boa opção para equipes Python que preferem a API de análise do Beautiful Soup em vez da manipulação do DOM em JavaScript.
Conclusão
AdsPower e Beautiful Soup se complementam de forma limpa. AdsPower fornece o ambiente de navegador isolado e protegido por impressão digital que permite superar defesas anti-bot; Beautiful Soup fornece a camada de análise que transforma HTML renderizado em dados estruturados. Selenium é a ponte entre eles.
Comece com um perfil e um site alvo. Faça a conexão funcionar, confirme os seletores e depois escale para vários perfis com proxies dedicados. A combinação é especialmente útil para monitoramento de preços em e-commerce, pesquisa de concorrentes, enriquecimento de leads e qualquer fluxo de trabalho onde sites bloqueiam agressivamente raspadores convencionais.
Para equipes avaliando navegadores anti-detecção antes de se comprometer, a comparação AdsPower vs Octo Browser vs BitBrowser detalha os trade-offs em impressão digital, automação e preços.
