Задать вопрос
@ARHAT-99

Как сделать тест парсера поисковика?

Сайт для которого создавался этот код вот ---> gadget.kg
У меня не получается сделать так что-бы он принял html и начал делать проверку
Код в котором делаю тест
import unittest
from .transform import GadgetTransform

class TestExtractor(unittest.TestCase):

    def test_data_products(self):
        transform = GadgetTransform()
        product_page = 'http://www.gadget.kg/catalog/search?q=xiaomi+redmi+note+7'
        product_details = transform.get_data(html=product_page)
        expection_product_details = [
            {'Title': 'Мобильный Телефон Xiaomi Redmi Note 7 PRO (6+128Gb)', 'cost': '12.000 сом'},
            {'Title': 'Мобильный Телефон Xiaomi Redmi Note 7 (6+64Gb)', 'cost': '10.400 сом'},
            {'Title': 'Мобильный Телефон Xiaomi Redmi Note 7 (4+128Gb) EU', 'cost': '11.500 сом'},
            {'Title': 'Мобильный Телефон Xiaomi Redmi Note 7 (3+32Gb) EU', 'cost': '10.000 сом'},
            {'Title': 'Мобильный Телефон Xiaomi Redmi Note 7 (4+64Gb) EU', 'cost': '10.700 сом'}]

        self.assertEqual(expection_product_details, product_details)

Код в котором происходит парсинг сайта
from bs4 import BeautifulSoup

class GadgetTransform:

    def get_data(self,  html: str) -> list:
        soup = BeautifulSoup(html, 'html.parser')
        items = soup.find_all('div', class_='hit__slide')
        phone = []
        for item in items:
            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,
            })

        print(phone)
  • Вопрос задан
  • 99 просмотров
Подписаться 2 Простой Комментировать
Решение пользователя Dimonchik К ответам на вопрос (2)
dimonchik2013
@dimonchik2013
non progredi est regredi
декомпозируй братан

чекай - приходит ли код

если пришел - чекай классы цссы

и не сцы
Ответ написан