"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Exemplo de web scraping dinâmico em Python: aplicação de selênio e webdriver

Exemplo de web scraping dinâmico em Python: aplicação de selênio e webdriver

Publicado em 2024-09-02
Navegar:213

Python dynamic web scraping example: application of selenium and webdriver

Web scraping dinâmico geralmente usa algumas bibliotecas Python, como solicitações para lidar com solicitações HTTP, selênio para simular o comportamento do navegador ou pyppeteer. O artigo a seguir focará no uso de selênio.

Uma breve introdução ao selênio

Selenium é uma ferramenta para testar aplicativos da web, mas também é frequentemente usado para web scraping, especialmente quando é necessário descartar conteúdo da web gerado dinamicamente por JavaScript. selenium pode simular o comportamento do usuário no navegador, como clicar, inserir texto e obter elementos de páginas da web.

Exemplo de web scraping dinâmico em Python

Primeiro, certifique-se de ter o Selenium instalado. Caso contrário, você pode instalá-lo via pip:

pip install selenium

Você também precisa baixar o WebDriver para o navegador correspondente. ‌Supondo que usemos o navegador Chrome,‌ você precisa baixar o ChromeDriver e certificar-se de que seu caminho foi adicionado às variáveis ​​de ambiente do sistema,‌ ou você pode especificar seu caminho diretamente no código. ‌

Aqui está um exemplo simples para obter o título de uma página da web:‌

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# Setting up webdriver
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()

Este script abrirá example.com, obterá seu título e imprimirá. ‌

Observe que ‌webdriver_manager é uma biblioteca de terceiros que gerencia automaticamente as versões do WebDriver. ‌Se não quiser usá-lo, você também pode baixar manualmente o WebDriver e especificar o caminho. ‌

Páginas da web dinâmicas podem envolver conteúdo renderizado em JavaScript. ‌Selenium pode esperar o carregamento desses elementos antes de operar, o que é muito adequado para processar essas páginas da web. ‌

Definir proxy ao copiar páginas da web dinâmicas em python

Ao usar Python para rastrear páginas dinâmicas da web, você geralmente usa um proxy. O uso de um proxy evita muitos obstáculos, por um lado, e acelera a eficiência do trabalho, por outro.

Introduzimos a instalação do selênio acima. Além disso, você também precisa baixar o WebDriver do navegador correspondente e certificar-se de que seu caminho seja adicionado às variáveis ​​de ambiente do sistema, ou você pode especificar seu caminho diretamente no código.
Depois de concluir as etapas acima, podemos configurar o proxy e descartar páginas da web dinâmicas:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# Set Chrome options
chrome_options = Options()
chrome_options.add_argument('--proxy-server=http://your_proxy_ip:port')

# Specify the WebDriver path (if you have added the WebDriver path to the system environment variables, you can skip this step)
# driver_path = 'path/to/your/chromedriver'
# driver = webdriver.Chrome(executable_path=driver_path, options=chrome_options)

# If WebDriver path is not specified, the default path is used (make sure you have added WebDriver to your system environment variables)
driver = webdriver.Chrome(options=chrome_options)

# Open the webpage
driver.get('https://www.example.com')

# Get the webpage title
title = driver.title

print(title)

# Close the browser
driver.quit()

Neste exemplo, ‌--proxy-server=http://your_proxy_ip:port é o parâmetro para configurar o proxy.‌ Você precisa substituir your_proxy_ip e porta pelo endereço IP e número da porta do servidor proxy que você realmente usar

Se o seu servidor proxy exigir autenticação,‌ você pode usar o seguinte formato:‌

chrome_options.add_argument('--proxy-server=http://username:password@your_proxy_ip:port')

Onde nome de usuário e senha são o nome de usuário e a senha do seu servidor proxy. ‌

Depois de executar o código acima, o ‌Selenium acessará a página da web de destino por meio do servidor proxy configurado‌ e imprimirá o título da página da web. ‌
Como especificar o caminho para o ChromeDriver?
ChromeDriver faz parte do Selenium WebDriver. Ele interage com o navegador Chrome por meio da API WebDriver para implementar funções como testes automatizados e rastreadores da web. ‌
Especificar o caminho do ChromeDriver envolve principalmente a configuração de variáveis ​​de ambiente. ‌Aqui estão as etapas específicas: ‌
1. Encontre o local de instalação do Chrome
Você pode encontrá-lo clicando com o botão direito no atalho do Google Chrome na área de trabalho e selecionando “Abrir local do arquivo”. ‌
2. Adicione o caminho de instalação do Chrome à variável de ambiente do sistema Path
Isso permite que o sistema reconheça o ChromeDriver em qualquer local. ‌
3. Baixe e descompacte o ChromeDriver
Certifique-se de baixar o ChromeDriver que corresponde à versão do navegador Chrome e descompacte-o em um programa exe. ‌
4. Copie o arquivo exe do ChromeDriver para o caminho de instalação do Chrome
Desta forma, quando você precisar usar o ChromeDriver, o sistema poderá reconhecê-lo e chamá-lo automaticamente

O texto acima é a aplicação de selenium e webdriver no rastreamento dinâmico da web em python e como evitá-lo ao rastrear páginas da web. Claro, você também pode praticar operações reais através dos exemplos acima.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/lewis_kerr_2d0d4c5b886b02/python-dynamic-web-scraping-example-application-of-selenium-and-webdriver-3330?1 Se houver alguma violação, entre em contato com study_golang@163 .com para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3