Renderização de JavaScript
Saiba mais sobre o cabeçalho que você pode incluir em suas solicitações para obter dados totalmente renderizados, que você pode armazenar em um arquivo HTML ou como uma captura de tela PNG.
Se a página que você deseja fazer scraping exigir o carregamento de JavaScript para carregar dinamicamente todos os dados necessários no DOM, em vez de configurar e usar um navegador sem interface gráfica por conta própria, você pode incluir o "X-Oxylabs-Render: html" cabeçalho nas suas requisições. Todas as requisições com esse cabeçalho incluído serão totalmente renderizadas, e todos os dados serão armazenados em um arquivo HTML ou em uma captura de tela PNG (dependendo do parâmetro passado).
Este parâmetro tem dois valores disponíveis:
html(HTML de uma página renderizada)png(bytes brutos que podem ser salvos como PNG)
Exemplos de código
curl -k -v -x https://unblock.oxylabs.io:60000 \\
-U 'USERNAME:PASSWORD' \\
'https://ip.oxylabs.io/location' \\
-H 'X-Oxylabs-Render: html'import requests
# Use suas credenciais do Web Unblocker aqui.
USERNAME, PASSWORD = 'YOUR_USERNAME', 'YOUR_PASSWORD'
# Defina o dicionário de proxy.
proxies = {
'http': f'http://{USERNAME}:{PASSWORD}@unblock.oxylabs.io:60000',
'https': f'https://{USERNAME}:{PASSWORD}@unblock.oxylabs.io:60000',
}
headers = {
'X-Oxylabs-Render': 'html'
}
response = requests.get(
'https://ip.oxylabs.io/location',
verify=False, # É necessário ignorar o certificado
proxies=proxies,
headers=headers,
)
# Imprima a página de resultado na saída padrão
print(response.text)
# Salve o HTML retornado no arquivo result.html
with open('result.html', 'w') as f:
f.write(response.text)Fazendo scraping do HTML de um site
Neste exemplo, vamos renderizar a página inicial do YouTube e fazer scraping do conteúdo da página. Normalmente, a página inicial do YouTube ficaria assim se Web Unblocker for usado sem renderização de JavaScript:

Adicionando o "X-Oxylabs-Render: html" cabeçalho, como nos exemplos abaixo, vai habilitar a renderização de JavaScript e retornar o HTML de uma página renderizada:
O arquivo HTML aberto em um navegador deve se parecer com isto:

Obtendo uma captura de tela de uma página totalmente renderizada
Para obter uma captura de tela no formato PNG em vez do HTML da página, é necessário fornecer o "X-Oxylabs-Render: png" cabeçalho.
A resposta conterá bytes brutos de uma imagem que podem ser salvos no formato PNG e abertos como no exemplo abaixo:

Forçando a renderização em páginas específicas
Para um scraping bem-sucedido, alguns tipos de página de domínios específicos exigem renderização devido ao seu conteúdo dinâmico. Nosso sistema impõe a renderização automaticamente para essas páginas, mesmo que não seja definida explicitamente pelo usuário.
Queremos que nossos usuários estejam totalmente cientes disso ao fazer scraping das seguintes páginas:
Esta abordagem oferece a melhor experiência possível de scraping, garantindo a precisão e a confiabilidade dos dados dessas páginas desafiadoras.
Se você quiser desativar a renderização, envie o cabeçalho de renderização sem um valor
Isto foi útil?