Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 11.02.2020
Сообщений: 24

Входит ли товар в каталог

08.04.2020, 10:30. Показов 551. Ответов 3

Студворк — интернет-сервис помощи студентам
При парсинге поисковика, необходимо узнать находиться ли этот товар в каталоге телефоны,
Пример: gadget.kg/catalog/telefony/xiaomi/2728
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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:
            link_is_true = link_is_true.find('a', class_='href') # сам тег с ссылкой  <a href='/catalog/telefony/xiaomi/2728'
        else:
            link_is_true = 'error'
        price = item.find('span', class_='hit__slide__price')
        if price:
            price = price.get_text()
        else:
            price = '' # так как у рекламы нет цены даю ей пустоту 
        phone = [i for i in phone if i['cost'] != ''] # избавляюсь от рекламы
        phone.append({
            'title': item.find("h6", class_='hit__slide__title').get_text(),
            'cost': price,
            'link': 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))
Его вывод:
[{'title': 'Мобильный Телефон Xiaomi Redmi Note 7 PRO (6+128Gb)', 'cost': '12.000 сом', 'link': None}, {'title': 'Мобильный Телефон Xiaomi Redmi Note 7 (6+64Gb)', 'cost': '10.400 сом', 'link': None}, {'title': 'Мобильный Телефон Xiaomi Redmi Note 7 (4+128Gb) EU', 'cost': '11.500 сом', 'link': None}, {'title': 'Мобильный Телефон Xiaomi Redmi Note 7 (3+32Gb) EU', 'cost': '10.000 сом', 'link': None}, {'title': 'Мобильный Телефон Xiaomi Redmi Note 7 (4+64Gb) EU', 'cost': '10.700 сом', 'link': None}]
Вопрос: почему в ключе link он пишет None и как мне сделать так что-бы он выводил правильную ссылку на те товары которые находяться в категории телефоны
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.04.2020, 10:30
Ответы с готовыми решениями:

Найти вероятность того, что в k выбранных наугад цифр а) не входит 0; б) не входит 1; в) не входит ни 0,
Помогите решить, последняя задача осталась, завтра на пересдачу идти, а с этой задачей разобраться не могу. Найти вероятность того, что в...

Общая сумма за товар, как объединить сумму за товар и этажи подъема
Здравствуйте, есть корзина, в корзине товар, у товара есть общая сумма за товары. Сумма плюсуется. По мимо этого есть еще один вывод...

Структура Товар, найти страны которые импортируют товар
Дано файл с даными об экспортированых товарах: название товара, страна-импортер, обьем партии в штуках, страна-экспортер. Надо найти страны...

3
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
08.04.2020, 11:35
ARHAT_99, а где ты видишь там элемент с классом href?

Добавлено через 4 минуты
если нужно получить линк, то попробуй так
Python
1
link_is_true = link_is_true.find('a').get(''href')
0
1 / 1 / 0
Регистрация: 11.02.2020
Сообщений: 24
09.04.2020, 12:12  [ТС]
m0nte-cr1st0, извиняюсь слегка напутал также спасибо получилось нормально получить ссылку на товар
Но у меня есть еще один вопрос,
как мне избавиться от часов и телефона xiaomi, если я буду искачть например какой нибудь товар от samsung который будет находиться в категории телефоны, они мне не нужны так как часы в категории часы и браслеты, а телефон xiaomi не должен быть в этом выводе так как я ищу товар от Samsung
Название телефона: Samsung
{'title': 'Планшет Samsung Galaxy Tab A 10.1 T510 4G LTE (2+32GB)', 'cost': '15.700 сом', 'link': 'http://www.gadget.kg/catalog/telefony/planshety/2820'}, {'title': 'Смарт Часы Samsung Galaxy Watch Active R500', 'cost': '10.700 сом', 'link': 'http://www.gadget.kg/catalog/gadzhety/smart-chasy-braslety/2819'},{'title': 'Планшет Samsung Galaxy Tab E 9.6" 3G T561 (1+8)', 'cost': '10.400 сом', 'link': 'http://www.gadget.kg/catalog/telefony/planshety/2757'}
0
 Аватар для m0nte-cr1st0
1043 / 578 / 242
Регистрация: 15.01.2019
Сообщений: 2,178
Записей в блоге: 1
10.04.2020, 14:25
ARHAT_99, что?

Добавлено через 1 минуту
если не нужен xiaomi, просто смотри чтобы в title не было этого слова
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.04.2020, 14:25
Помогаю со студенческими работами здесь

Необходимо чтобы когда товар появился, то строка с пользователем, у которого есть этот товар, подсветилась
есть таблица с подпиской на товар |Пользователь | Дата добавления | Дата изменения | Количество товаров | список товаров| есть...

Если цена на какой-то товар из таблицы в файле Excel выше заданной, то записывать этот товар в файл Word
Добрый день. Пожалуйста, помогите решить задание: В Excel перечислены товары и их цена. Программа на VBS должна открыть этот файл Excel,...

Добавить статью в каталог статей ТИЦ 50 на сайте каталог компаний России
Добавить статью в каталог статей ТИЦ 50 за небольшую оплату - подробности на сайте каталог компаний России www.каталог-спецтехника.рф . Наш...

Виртуальный каталог - это только файловый каталог или нет?
Привет! В процессе исследования одного вопроса появилась необходимость детально разобраться в том, чем отличается виртуальный каталог...

Перенести все исходные файлы в каталог уровнем выше, а их прежний каталог удалить
Напишите плиз кому не сложно программку для DOS.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru