Python & Selenium:从 html 元素中分层选择数据的最佳方式是什么?



作为学习Python和Selenium的练习,我正在尝试编写一个脚本,检查网页上有各种商业交易,找到所有特定的食品交易(类名"tag food"(,将它们放在列表中(elem(,然后检查哪些包含文本"sushi",并为这些元素提取包含价格的html元素。并打印结果。

我有:

elem = driver.find_elements_by_class_name('tag-food')
i = 0
while i < len(elem):
source_code = elem[i].get_attribute("innerHTML")
# ?? how to check if source_code contains 'sushi'?
# ?? if true how to extract price data?
i = i + 1
driver.quit()

进行这些检查的最佳和最直接的方法是什么?谢谢🙏

我认为您不需要while循环。此外,您要查找的是text值,而不是innerHTML

你可以让它变得更简单,比如:

for row in driver.find_elements_by_class_name('tag-food'):
if "sushi" in row.get_attribute("innerText"):
print("Yes this item has sushi")
# find element to grab price, store in variable to do something else with
else:
print("No sushi in this item")

甚至只是这样,这取决于HTML中的文本的结构:

for row in driver.find_elements_by_class_name('tag-food'):
if "sushi" in row.text:
print("Yes this item has sushi")
# find element to grab price, store in variable to do something else with
else:
print("No sushi in this item")

最新更新