Análisis del código fuente de webdriveragent
Construcción del entorno
Herramientas de preparación: python3.5, selenium, phantomjs
Mi computadora ya instaló Python3.5.
Instalar Selenium
1
pip3 instalar selenium
Instalar phantom
Descargar phantomjs según el entorno del sistema . Después de la descarga, descomprima phantomjs.exe en la carpeta del script de Python.
Utilice selenium+phantomjs para implementar un rastreador simple
1
2
Tres
Cuatro p>
p>
Cinco
Seis
Siete
Ocho
Nueve
Importar controlador web desde el programa selenium
driver = webdriver. Phantom()
Driver.get('') #Cargar la página web
Data = driver.page_source #Para obtener el texto de la página web.
controlador . Guardar _ pantalla abajo(' 1 . png ')#Guardar la captura de pantalla.
Imprimir (datos)
driver.quit()
Varios usos de selenio + fantasma
Establecer el usuario en el encabezado de la solicitud Agente
1
2
Tres
Cuatro
Cinco
Seis
Siete
Ocho
Nueve
10
11
12
Importar controlador web desde selenium
Importar DesiredCapabilities desde selenium controlador web común .
DCAP = diccionario(DesiredCapabilities.PhantomJS) # Establecer useragent p >
dcap[' configuración de página phantom js . información del navegador.
controlador = controlador web. phantom js(desired _ capacidades = dcap)#Encapsular información del navegador.
Driver.get('') #Cargar la página web
Data = driver.page_source #Para obtener el texto de la página web.
controlador . Guardar _ pantalla abajo(' 1 . png ')#Guardar la captura de pantalla.
Imprimir (datos)
driver.quit()
Solicitar configuración de tiempo de espera
Hay tres métodos relacionados con el tiempo en webdriver clase:
1.pageLoadTimeout establece el tiempo de espera cuando la página está completamente cargada. Cuando la página está completamente cargada, se representa por completo y se ejecutan scripts tanto sincrónicos como asincrónicos.
2.setScriptTimeout establece el tiempo de espera de los scripts asincrónicos.
3. ImplicitlyWait identifica el tiempo de espera inteligente del objeto
1
2
Tres
Cuatro.
p>
Cinco
Seis
Siete
Importar controlador web desde selenium
driver = controlador web. Phantom()
controlador Set_page_load_timeout(5)#Establecer el tiempo de espera.
driver.get(' ')
Imprimir(driver.title)
driver.quit()
Establecer el tamaño de la ventana del navegador
El navegador que se llama al iniciar no es pantalla completa, lo que en ocasiones afecta a algunas de nuestras operaciones, por lo que podemos configurar pantalla completa.
1
2
Driver.maximize_window() #Establecer pantalla completa.
Conductor. set _ window _ size ('480 ', '800') #Configure el navegador en un ancho de 480 y un alto de 800.
Posicionamiento de elementos
1
2
Tres
Cuatro
Cinco
Seis
Siete
Ocho
Nueve
10
11
12
13
14
15
16
17
18
Importar controlador web desde selenium
driver = webdriver. Phantom()
driver.set_page_load_timeout(5)
driver.get(' ')
Pruebe:
driver.get( ' ')
Conductor. buscar _ elemento _ por _ ID ('kw') #Localizar por ID.
Conductor. buscar _ elemento _ por _ clase _ nombre(' s _ ipt ')#ubicado por el atributo de clase.
Conductor. buscar _ elemento _ por _ nombre ('wd') #Localizar por el atributo de nombre de etiqueta.
Conductor. buscar _ elemento _ por _ etiqueta _ nombre ('entrada')#ubicado por el atributo de etiqueta.
Conductor. buscar _ elemento _ por _ css _ selector('# kw ')#Posicionado por CSS.
Conductor. buscar _ elemento _ por _ xpath("//input[@ id = ' kw ']")#Localizar a través de XPath.
Conductor. buscar _ elemento _ por _ enlace _ texto("Tieba")#Localizar a través de xpath.
print(driver . find _ element _ by _ id(' kw '). tag _ name) #Obtener el tipo de etiqueta.
La excepción es e:
Print(e)
driver.quit()
Opera el navegador hacia adelante o hacia atrás.
1
2
Tres
Cuatro
Cinco
Seis p>
p>
Siete
Ocho
Nueve
10
11
12
13
14
Importar controlador web desde selenium
driver = webdriver.
Illusion()
Prueba:
driver . get(')#Visita la página de inicio de Baidu
driver.save _Screenshot (' 1.png ') p >
controlador . get(')#Visita la página de inicio de Sina.
driver.save_screenshot('2.png ')
Driver.back() #Regresar a la página de inicio de Baidu.
driver.save _Screenshot (' 3.png ')
Driver.forward() #Ir a la página de inicio de Sina.
driver.save _Screenshot(' 4.png ')
La excepción es e:
Imprimir(e)
driver .quit ()