Selenium. Как получить данные, на основе предыдущей выборки
Есть код:
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.justdial.com/Bangalore/Bakeries')
name = ["Pat-a-Cake", "Chef Bakers2", "Just Bake", "S Baking Co2"]
storenames = driver.find_elements(By.CLASS_NAME, "store-name")
vv =[x.text for x in storenames if x.text in name]
if vv:
result = vv[0]
#result = driver.find_element(By.CLASS_NAME, "cntanr").text
else:
result = 'No'
print(result)
Код находит из моего списка name, первый с верху магазин - его название. Но мне нужно по этому условию вывести все данные магазина. Подскажите пожалуйста, как мне вывести результат другого класса ("cntanr")? Спасибо!
Ответы (1 шт):
Автор решения: Сергей Ш
→ Ссылка
from bs4 import BeautifulSoup
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0',}
name = ["Pat-a-Cake", "Chef Bakers2", "Just Bake", "S Baking Co2"]
res = requests.get('https://www.justdial.com/Bangalore/Bakeries', headers=headers)
soup = BeautifulSoup(res.content, 'html.parser')
for itm in soup.find_all('li', class_="cntanr"):
if itm.h2.text.strip() in name:
print(itm.h2.text.strip())
print(itm.find('span', class_="cont_fl_addr").text)
print(itm.find('div', class_="attr_clss").text.strip())
print(itm['data-href'])
break
else:
print('No')