módulo de selenio
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.
Coloque el programa chromedriver descargado en la carpeta de configuración de Chrome de la carpeta de Google.
Agregue esta dirección a la variable de entorno y
abra cmd, ingrese chromedriver para probar si Chrome ha sido
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:
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:
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,
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)