如何使用Selenium获取find_elements(而不是find_element)的innerHTML

t1qtbnec  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(145)

我的目标是得到这个价格文本(2078--如图所示),它与find_element一起工作,但输出中的值在整个循环中是相同的。
第一次
这里是我的代码:

从结果中提取信息

对于条目中条目:#Empty list labels=[] #正在提取名称、地址、电话和网站:

name= entry.get_attribute("aria-label")
adress = entry.find_element(By.XPATH, '//*[@id="QA0Szd"]/div/div/div[1]/div[2]/div/div[1]/div/div/div[3]/div[1]/div[5]/div/div[2]/div[2]/div[3]/div/div[2]/div/div/jsl[1]/div[2]')
adress_get = adress.get_attribute('innerHTML')

phone = entry.find_elements(By.CLASS_NAME, 'xwpmRb.qisNDe').text
try:
    webcontainer= entry.find_elements(By.CLASS_NAME, 'W4Efsd')
    website="Hello"
except NoSuchElementException:
    website="No website could be found"
print (name)
print (adress_get)
print (phone)
print (website)

我的目标是从谷歌Map页面(网页抓取)获得价格表文本。

6rqinv9w

6rqinv9w1#

要打印find_elements找到的所有元素的所有文本,您需要执行以下操作:

phones = entry.find_elements(By.CLASS_NAME, 'xwpmRb.qisNDe')
for phone in phones:
    print(phone.text)

或者你可以创建一个变量来保存元素的文本,使用下面的列表解析:

phones = entry.find_elements(By.CLASS_NAME, 'xwpmRb.qisNDe')
phones_texts = [phone.text for phone in phones]

然后,您可以使用它执行您想要的操作,例如,打印每个元素的列表:

print(phones_texts)
# OR
for text in phones_texts:
    print(text)

相关问题