सेलेनियम टाइपर्रर: 'वेबलाइमेंट' ऑब्जेक्ट सब्स्क्रिप्टेबल नहीं है [डुप्लिकेट]
Dec 17 2020
मैंने पिछली पुनरावृत्त सूची की वस्तुओं को जोड़कर एक शब्दकोश बनाने की कोशिश की, और मुझे पता है कि समस्या क्या है:
for i in range(3):
try:
#primero: encontrar el boton:
boton=WebDriverWait(driver,6).until(
EC.presence_of_element_located(By.XPATH,'//div[@class="entrys-con-banner last clearfix"]//a[@class="btn"]')
)
boton.click()
#segundo:esperar a que cargue la informacion:
WebDriverWait(driver,7).until(
EC.presence_of_all_elements_located((By.XPATH,'//article[@itemtype="http://schema.org/Article"]'))
)
sleep(random.uniform(4.0,6.0))
except:
break
print("Error")
ElEconomista=[]
articulos=driver.find_elements_by_xpath('//article[@itemtype="http://schema.org/Article"]')
for articulo in articulos:
autor=articulo.find_element_by_xpath('.//p/a').text
titulo=articulo.find_element_by_xpath('.//div[@class="entry-data"]/h3/a').text
try:
nota=articulo.find_element_by_xpath('.//div[@class="entry-data"]/p').text
except:
nota="NA"
#se crea un diccionario para cada item
articulo_dict=dict()
articulo_dict["autor"]=articulo["autor"]
articulo_dict["titulo"]=articulo["titulo"]
articulo_dict["nota"]=articulo["nota"]
ElEconomista.append(articulo_dict)
पिछला कोड यहाँ दी गई सलाह को ले कर संशोधित किया गया था, (नीचे दिए गए कोड के कारण त्रुटि अलग है), लेकिन फिर भी यह मुझे एक ही त्रुटि देता है, इसलिए मैंने सभी कोड डालने का फैसला किया
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-1-01b021486e73> in <module>
57
58 ElEconomista.append({
---> 59 "autor":articulo["autor"],
60 "titulo":articulo["titulo"],
61 "nota":articulo["nota"]
TypeError: 'WebElement' object is not subscriptable
जवाब
patrec Dec 17 2020 at 00:47
आपको शब्दकोशों की एक सूची बनाने की आवश्यकता है। इसलिए पहले आप प्रत्येक लेख के लिए एक विशिष्ट शब्दकोश बनाएं और उसे उचित जानकारी के साथ भरें और फिर उस शब्दकोश को अपनी सूची में जोड़ेंElEconomista
for articulo in articulos:
autor=articulo.find_element_by_xpath('.//p/a').text
titulo=articulo.find_element_by_xpath('.//div[@class="entry-data"]/h3/a').text
try:
nota=articulo.find_element_by_xpath('.//div[@class="entry-data"]/p').text
except:
nota="NA"
articulo_dict = dict()
articulo_dict["autor"] = autor
articulo_dict["titulo"] = titulo
articulo_dict["nota"] = nota
ElEconomista.append(articulo_dict)