Вопрос такой:
Сделав парсер поисковика на сайт, необходимо брать только телефоны которые соответствуют названию товара, остальные товары такие как зубные щетки, телефоны которые не соответствуют выводу поисковика и часы и т.д. Не нужны в выводе
Сам код вот:
import requests
from bs4 import BeautifulSoup
def get_html(full_url):
res = requests.get(full_url)
return res.text
def get_data(html):
soup = BeautifulSoup(html, 'lxml')
items = soup.find_all('div', class_='hit__slide')
phone = []
for item in items:
link_is_true = item.find('h6', class_='hit__slide__title') # нахожу тег в котором находиться ссылка
if link_is_true is not 'catalog/telefony/':
link_is_true = link_is_true.find('a').get('href')
price = item.find('span', class_='hit__slide__price')
if price:
price = price.get_text()
else:
price = ''
name = item.find("h6", class_='hit__slide__title')
phone = [i for i in phone if i['cost'] != '']
phone.append({
'title': name,
'cost': price,
'link': HOST + link_is_true,
})
return phone
while True:
search_name = input('Название телефона: ')
url = 'http://www.gadget.kg/catalog/search?q='
full_url = (url + search_name.replace(' ', '+'))
HOST = 'http://www.gadget.kg'
html = get_html(full_url)
print(get_data(html))
Его Ввод и вывод:
Введите название телефона: Samsung
[{'title': 'Мобильный Телефон Xiaomi Redmi Note 8 (6+128Gb) Global IND', 'cost': '13.000 сом', 'link': '
www.gadget.kg/catalog/telefony/xiaomi/3337'}, {'title': 'Мобильный Телефон Xiaomi Mi 9 (6+64Gb) EU Global', 'cost': '20.600 сом', 'link': '
www.gadget.kg/catalog/telefony/xiaomi/3143'}, {'title': 'Мобильный Телефон Xiaomi Mi Note 10 (6+128Gb) EU', 'cost': '30.000 сом', 'link': '
www.gadget.kg/catalog/telefony/xiaomi/3130'}, {'title': 'Планшет Samsung Galaxy Tab A 10.1 T510 4G LTE (2+32GB)', 'cost': '15.700 сом', 'link': '
www.gadget.kg/catalog/telefony/planshety/2820'}, {'title': 'Смарт Часы Samsung Galaxy Watch Active R500', 'cost': '10.700 сом', 'link': '
www.gadget.kg/catalog/gadzhety/smart-chasy-braslet...'}, {'title': 'Мобильный Телефон Xiaomi Redmi Note 8 (4+128Gb) EU', 'cost': '12.900 сом', 'link': '
www.gadget.kg/catalog/telefony/xiaomi/2796'}, {'title': 'Смарт Часы женские Bakeey H8', 'cost': '1.800 сом', 'link': '
www.gadget.kg/catalog/gadzhety/smart-chasy-braslet...'}, {'title': 'Смарт-часы Samsung Galaxy Watch R800 46mm', 'cost': '15.000 сом', 'link': '
www.gadget.kg/catalog/gadzhety/smart-chasy-braslet...'}, {'title': 'Смарт-часы Samsung Galaxy Watch R810 42mm', 'cost': '14.700 сом', 'link': '
www.gadget.kg/catalog/gadzhety/smart-chasy-braslet...'}, {'title': 'Планшет Samsung Galaxy Tab E 9.6" 3G T561 (1+8)', 'cost': '10.400 сом', 'link': '
www.gadget.kg/catalog/telefony/planshety/2757'}, {'title': 'Планшет Samsung Galaxy Tab A 8.0 T295 (2+32GB)', 'cost': '10.900 сом', 'link': '
www.gadget.kg/catalog/telefony/planshety/2756'}, {'title': 'Мобильный Телефон Xiaomi Redmi Note 7 (6+64Gb)', 'cost': '10.400 сом', 'link': '
www.gadget.kg/catalog/telefony/xiaomi/2719'}]