Я не могу найти ответ в других сообщениях.Я соскребаю цены на товары с сайта.Некоторые продукты хранят свои цены в классе html, а другие продукты хранят его в другом (например, некоторые продукты имеют цену за кг, а другие имеют цену за единицу в разных тегах).
У меня есть 3 переменные.Один, чтобы очистить название продукта, и два других, чтобы намокнуть, если у него есть цена за килограмм или цена за единицу, и если у него нет ни одного из них, он печатает то, что сказано, кроме.
Дело в том,HTML хранит оба тега, один пустой и один имеет цену.Я не могу сделать if / else, чтобы проверить, является ли значение в теге пустым, и получить значение из другого тега.Я пытался с if 0: do something, if "": do something, if False: do something, if priceKG: do something... but none is catching this empty value.
For search in product_list:
sleep(randint(2, 6))
url = "http://www.tottus.com.pe/tottus/product/" + search.strip() + "?navAction=jump&navCount=2"
r = requests.get(url)
soup = BeautifulSoup(r.content, "lxml")
try:
producto = soup.find(["div"], {"class": ["title"]}).h5.text
priceKG = soup.find(["div"], {"class": ["price-unit"]}).text
priceUN = soup.find(["span"], {"class": ["active-price"]}).span.text
if priceKG:
print(
[producto.strip(), priceKG.strip()])
else:
print(
[producto.strip(), priceUN.strip()])
except:
print(producto.strip(),"No Disp.")
pass
Спасибо