作为学习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")