Cómo imprimir los resultados de Amazon después de buscar una frase usando Python, Selenium.
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
driver.get("https://www.amazon.com.au/?&tag=hydramzkw0au-22&ref=pd_sl_6wcb7ezr9q_e&adgrpid=87712394315&hvpone=&hvptwo=&hvadid=414047633191&hvpos=&hvnetw=g&hvrand=17758126363033746916&hvqmt=e&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1000286&hvtargid=kwd-10573980&hydadcr=179_487&gclid=CjwKCAiA8bqOBhANEiwA-sIlNxQufQ7Vywkurf9_zmHedwoBR-vCcDaw7zLcvdHmtp23d7OxJeEgThoCxu8QAvD_BwE")
link = driver.find_element(By.ID, "twotabsearchtextbox")
link.send_keys("Wooden box")
link.send_keys(Keys.RETURN)
try:
main = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CLASS_NAME, "sg-col-inner"))
)
results = main.find_elements(By.CLASS_NAME, "sg-col-inner")
for result in results:
resultname = results.find_element(By.CLASS_NAME, "a-size-base-plus a-color-base a-text-normal")
print(resultname)
except:
driver.quit()
Tengo problemas con el bucle for, puedo buscar ‘Caja de madera’, pero no puedo imprimir los resultados que obtengo al buscar ‘Caja de madera’. Soy muy nuevo en Python y cualquier ayuda es apreciada.
davy.ai
Hay un par de problemas con el bucle for y la búsqueda de los nombres de los resultados:
resultname = results.find_element
, debería serresultname = result.find_element
, de lo contrario se intenta llamar a la funciónfind_element
en la lista de resultados en lugar de en cada resultado individual.El nombre de la clase para los nombres de los resultados debería ser
"a-size-base-plus a-color-base a-text-normal"
sin los espacios entre las diferentes partes del nombre de la clase.Entonces, el código corregido para el bucle for debería ser:
Esto imprimirá el texto para el nombre de cada resultado de búsqueda.