La diferencia entre el selenio para obtener el código fuente de una página web
Este primer blog ya está escrito. Pero lo que quiero reiterar aquí es su diferencia
drive=webdriver.Chrome()
drive.get('https://www.baidu.com/')
print(drive.page_source)
page_source es el código fuente devuelto por selenium, pero la diferencia entre esto y lo que obtenemos a través de la biblioteca de solicitudes es. Selenium se puede actualizar de forma dinámica y constante. Selenium se parece más a un navegador. Puede hacer que la página se muestre directamente en Ajax como un navegador.
Por ejemplo, cuando usa solicitudes, no
puede encontrarlo cuando rastrea la red de anzuelos .
Lo podemos encontrar en el elemento, esto se debe a que esta cosa se carga en el navegador para que selenium pueda obtenerla de forma natural, pero al usar solicitudes solo se visita una de las URL, naturalmente solo se puede obtener una. La relación se muestra en la figura, si usa solicitudes para acceder solo a url_1 y el contenido está en url_2
Ejemplo
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as Ec
drive=webdriver.Chrome()
drive.get('https://fanyi.baidu.com/?aldtype=16047#zh/en')
def set_word():
try:
InputTag=WebDriverWait(drive,10).until(
Ec.presence_of_element_located((By.ID,'baidu_translate_input'))
)
InputTag.send_keys('你好')
except Exception as e :
print(e)
set_word()#百度会刷新一次所以要两次
time.sleep(2)
set_word()
print(drive.page_source)
El resultado actual (se devuelve Hello) en
comparación con el anterior (mediante solicitudes)
Luego lo ponemos en etree y usamos xpath o directamente usamos re para extraer los resultados de la traducción.
declaración
Debido al tiempo limitado,
el siguiente código no se escribirá, lo cual es relativamente simple. Bueno, básicamente el selenio necesita mucho uso.