Introducción
Selenium es una herramienta de prueba automatizada que admite varios navegadores. En resumen, selenium puede operar navegadores y cargar algunas interfaces que deben cargarse dinámicamente.
Después de instalar la biblioteca de selenium, también debe instalar el controlador para el navegador correspondiente.
La operación básica de selenium webdriver
localiza el elemento Después de eso, también debe realizar las siguientes operaciones correspondientes. A continuación se describen algunos métodos comúnmente utilizados.
Método común
método | describir | Ejemplo |
---|---|---|
obtener (url) | URL de visita | driver.get('http://www.baidu.com') |
espalda() | un paso atrás | driver.back() Volver a la página anterior, similar a: ← |
delantero() | Vaya al siguiente paso | driver.format() Opuesto a back(), similar a: → |
dejar() | Salga del controlador y cierre todas las ventanas. | driver.quit() cerrar todas las ventanas |
Cerrar() | cerrar la ventana actual | driver.close() Cerrar la ventana actualmente abierta |
maximizar_ventana() | Navegador maximizado | |
actualizar() | actualiza tu navegador | driver.refresh() actualiza tu navegador |
manipulación de elementos
método | describir | Ejemplo |
---|---|---|
enviar_claves() | Ingrese datos en el tipo de cuadro de texto | driver.find_element('input').send_keys('123') Ingrese 123 en el cuadro de entrada |
claro() | Borrar datos ingresados | driver.find_element(‘tag’,'input').clear() Borrar el contenido del cuadro de entrada |
hacer clic() | haga clic en evento | driver.find_element('tag','input').click() |
ingresar() | Activar la acción de entrada del teclado | driver.find_element('tag','input').enter() |
texto() | Obtener el contenido de texto de un elemento | driver.find_element('id','name').text() , devuelve el texto del nombre |
fuente de la página | Obtener el contenido HTML de la página | driver.page_source() Obtener el html de la página web |
manipulación de cookies
método | Introducción | Ejemplo |
---|---|---|
obtener_cookies() | Obtener todas las cookies de la página actual | dirver.get_cookies() Obtener todas las cookies en la página |
agregar_cookie() | agregar galletas | driver.add_cookie('time','1612354154.7383971') , agregue una cookie con un tiempo de 1612354154.7383971 |
borrar_cookie() | borrar una galleta | driver.delete_cookie('time') eliminar la cookie llamada tiempo |
eliminar_todas_las_cookies() | eliminar todas las cookies | driver.delete_cookies() eliminar todas las cookies |
Caso: Obtención de la información de contratación de Lagou.com
from selenium import webdriver
import time
from bs4 import BeautifulSoup
import re
class Job: # 建立一个工作类
def __init__(self):
self.name=None
self.company=None
self.condition=None
self.salary=None
def get(self):
return (self.name,self.company,self.condition,self.salary)
class Lagou:
def __init__(self):
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.url='http://www.lagou.com/'
def search(self,keyword):
self.driver.get(self.url)
time.sleep(3)
self.driver.find_element('id','cboxClose').click()
time.sleep(3)
self.driver.find_element('id','search_input').send_keys(keyword)
self.driver.find_element('id','search_button').click()
time.sleep(2)
page_source=self.driver.page_source
self.driver.quit()
return page_source
def get_jobs(self,page_source):
soup=BeautifulSoup(page_source,'html.parser')
myjob=Job() # 实例化每一个工作并进行信息存储
hot_item=soup.find_all('li',class_=re.compile('con_list_item'))
for item in hot_item:
myjob.name=item.find('h3').get_text().strip() # 去除字符两端的空白字符
myjob.company=item.select_one('.company_name>a').get_text().strip()
myjob.salary=item.select_one('.money').get_text().strip()
myjob.condition=item.find('div',class_='industry').get_text().strip()
print(myjob.get())
if __name__ == '__main__':
hot=Lagou()
time.sleep(5)
page_source=hot.search('python')
hot.get_jobs(page_source)
resultado de la operación