Red de conocimiento informático - Problemas con los teléfonos móviles - Análisis del código fuente de webdriveragent

Análisis del código fuente de webdriveragent

Generalmente, utilizamos la solicitud de biblioteca de terceros de Python y el marco scrapy para rastrear recursos en línea, pero no podemos rastrear páginas representadas por javascript. En este momento, utilizamos la herramienta de prueba web automatizada Selenium+PhantomJS para capturar la página representada por javascript. Este es un rastreo simple.

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>

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

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>

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 ')

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 ()