Python crawler series-start en el suelo (5)

Selenio y rastreadores

  • Obtenga cómodamente datos cargados dinámicamente en el sitio web
  • Implementar cómodamente el inicio de sesión simulado

Que es el selenio

Un módulo basado en la automatización del navegador.

Red china de selenio

Proceso de uso de selenio

  • Instalación ambiental pip install selenium
  • Descargue un sitio de descarga de controladores de navegador: ChromeDriver Mirror
  • Crear una instancia de un objeto de navegador a través de selenium
  • Edite el código de operación basado en la automatización del navegador
    • Iniciar una solicitud: get ()
    • Posicionamiento de etiquetas: método de búsqueda de series
    • Interacción de etiqueta: send_keys ('xxx')
    • Ejecute el programa js: excute_script ('jsCode')
    • Página adelante y atrás: adelante (), atrás ()
    • Cierre el navegador: quit ()

Operación de proceso específico

Según la versión del navegador Chrome, elija descargar el controlador correspondiente.
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Coloque el programa chromedriver descargado en la carpeta de configuración de Chrome de la carpeta de Google.
Inserte la descripción de la imagen aquí
Agregue esta dirección a la variable de entorno y
Inserte la descripción de la imagen aquí
abra cmd, ingrese chromedriver para probar si Chrome ha sido
Inserte la descripción de la imagen aquí
Código básico del controlador configurado correctamente :

from selenium import webdriver

# 实例化一个chrome浏览器
chrome_driver = 'C:\Program Files\Google\Chrome\Application\chromedriver.exe'
driver = webdriver.Chrome(executable_path= chrome_driver)
# 让浏览器向指定url发起请求
driver.get('https://www.baidu.com')

efecto:
Inserte la descripción de la imagen aquí

Ejercicio: obtenga el contenido del código de la página

Página de rastreo: http://scxk.nmpa.gov.cn:81/xk/

from selenium import webdriver
from lxml import etree
from time import sleep

# 实例化一个chrome浏览器
chrome_driver = 'C:\Program Files\Google\Chrome\Application\chromedriver.exe'
driver = webdriver.Chrome(executable_path= chrome_driver)
# 让浏览器向指定url发起请求
driver.get('http://scxk.nmpa.gov.cn:81/xk/')

# 获取浏览器当前页面的页面源码数据
page_text = driver.page_source
# 解析数据
tree = etree.HTML(page_text)
li_list = tree.xpath('//ul[@id="gzlist"]/li')
for li in li_list:
    name = li.xpath('./dl/@title')[0]
    print(name)

sleep(2)
# 关闭实例化浏览器
driver.quit()

efecto:
Inserte la descripción de la imagen aquí

Selenium maneja iframe

En selenium, puede encontrar una página incrustada con un iframe. La
dirección de la página: https://www.runoob.com/try/try.php?filename=tryjs_events,
Inserte la descripción de la imagen aquí
seleccione directamente el botón en el iframe y haga clic en él no tendrá éxito. Necesita cambiar al alcance del iframe
Core:iframe = driver.switch_to.frame('iframeResult')

Código:

from selenium import webdriver

chrome_driver = 'C:\Program Files\Google\Chrome\Application\chromedriver.exe'
driver = webdriver.Chrome(executable_path= chrome_driver)
# 让浏览器向指定url发起请求
driver.get('https://www.runoob.com/try/try.php?filename=tryjs_events')

# 如果定位的标签是存在于iframe标签中的,则必须通过如下此操作再进行标签定位
# 定位iframe,切换浏览器标签定位的作用域
iframe = driver.switch_to.frame('iframeResult')

btn = driver.find_element_by_xpath('//body/button[@type="button"]')
btn.click()
print(btn)

Supongo que te gusta

Origin blog.csdn.net/qq_36171287/article/details/113811685
Recomendado
Clasificación