Cómo extraer el texto de los resultados de búsqueda de duckduckgo usando Selenium Python

Estoy tratando de obtener las descripciones de enlaces de pato de pato de los resultados de búsqueda utilizando lo siguiente:

results=browser.find_elements_by_xpath("//div[@id='links']/div/div/div[2]") description=[] for result in results: description.append(result.text) 

Recibo el error ‘lista’ objeto no tiene atributo ‘texto’. Pude usar un método similar para obtener los títulos de los resultados de búsqueda, pero por alguna razón no puedo extraer el texto de este xpath en particular.

Para extraer las descripciones de los enlaces de los resultados de búsqueda de DuckDuckGo , debe inducir a WebDriverWait para la visibilidad de todos los elementos ubicados y puede utilizar la siguiente solución:

  • Bloque de código:

     from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By options = webdriver.ChromeOptions() options.add_argument("start-maximized") options.add_argument("disable-infobars") options.add_argument("--disable-extensions") driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe') driver.get('https://duckduckgo.com/') search_box = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.NAME, "q"))) search_box.send_keys("Selenium") search_box.submit() elements = WebDriverWait(driver, 10).until(EC.visibility_of_all_elements_located((By.XPATH, "//div[@id='links']/div/div/div[2]"))) for ele in elements: print(ele.text) driver.quit() 
  • Salida de consola:

     What is Selenium? Selenium automates browsers.That's it! What you do with that power is entirely up to you. Primarily, it is for automating web applications for testing purposes, but is certainly not limited to just that. Selenium is a mineral found in the soil. Selenium naturally appears in water and some foods. While people only need a very small amount, selenium plays a key role in the metabolism.. Why do people ... Selenium is a chemical element with symbol Se and atomic number 34. It is a nonmetal (more rarely considered a metalloid) with properties that are intermediate between the elements above and below in the periodic table, sulfur and tellurium, and also has similarities to arsenic. Selenium is a trace mineral found naturally in the soil that also appears in certain high-selenium foods, and there are even small amounts in water.. Selenium is an extremely vital mineral for the human body as it increases immunity, takes part in antioxidant activity that defends against free radical damage and inflammation, and plays a key role in maintaining a healthy metabolism. Introduction. Selenium is a trace element that is naturally present in many foods, added to others, and available as a dietary supplement. Selenium, which is nutritionally essential for humans, is a constituent of more than two dozen selenoproteins that play critical roles in reproduction, thyroid hormone metabolism, DNA synthesis, and protection from oxidative damage and infection []. Selenium is an essential trace mineral that is important for many bodily processes, including cognitive function, a healthy immune system, and fertility in both men and women. Your body relies on selenium, an important mineral, for many of its basic functions, from reproduction to fighting infection. The amount of selenium in different foods depends on the amount of ... Overview Information Selenium is a mineral. It is taken into the body in water and foods. People use it for medicine. Most of the selenium in the body comes from the diet. The amount of selenium ... Selenium WebDriver. The biggest change in Selenium recently has been the inclusion of the WebDriver API. Driving a browser natively as a user would either locally or on a remote machine using the Selenium Server it marks a leap forward in terms of browser automation. Downloads. Below is where you can find the latest releases of all the Selenium components. You can also find a list of previous releases, source code, and additional information for Maven users (Maven is a popular Java build tool). 

No tiene que crear un bucle for para la lista vacía … intente usar este código:

 results=driver.find_elements_by_xpath("//div[@id='links']/div/div/div[2]") description=[] for result in results: description.append(result.text) 

Ejemplo: para probar esto, simplemente escribí ‘hmm’ en DuckDuckGo para que la URL sea https://duckduckgo.com/?q=hmm&t=h_&ia=web

 from selenium import webdriver driver=webdriver.Chrome() driver.get('https://duckduckgo.com/?q=hmm&t=h_&ia=web') results=driver.find_elements_by_xpath("//div[@id='links']/div/div/div[2]") description=[] for result in results: description.append(result.text) print(description[0]) print(' ') print(description[1]) print(' ') print(description[2]) 

Salida:

HMM desarrollará “New-GAUS 2020” … HMM sostiene ‘PSA-Hyundai Pusan ​​N … HMM nombra nuevo VLCC,’ Universal … 2019 Mensaje de Año Nuevo; El Plan de Futuro del HMM; Plan HMM para el año 202 … HMM firmó el contrato formal …

Definición de Hmm, (se usa normalmente para express una absorción cuidadosa, vacilación, duda o perplejidad). Ver más.

2 solía enfatizar que uno ha hecho una pregunta y está esperando una respuesta. Pero dígale a Santa la verdad ahora, ¿cuál es la parte más importante para un niño o una niña? La caja

Los resultados de búsqueda:

Resultados de la búsqueda