SeRzZzJ
@SeRzZzJ
Java developer

Как спарсить цены товаров на сайте DNS?

Здравствуйте! Помогите пожалуйста, я начинающий программист на Python, как и все самоучки сталкиваюсь с множеством проблем, вот одна из из них --> Я решил спарсить каталог ноутбуков с сайта DNS и все данные получается спарсить кроме цены, почему-то выдает -->
'product-price': item.find('div', class_='product-price').get_text()
AttributeError: 'NoneType' object has no attribute 'get_text'


В чем проблема, не могу понять, объясните пожалуйста начинающему программисту
Вот если, что код парсера, еще пока не готового -->
import requests
from bs4 import BeautifulSoup
import csv
from fake_useragent import UserAgent

ua = UserAgent()
CSV = 'Ноутбуки DNS.csv'
URL = 'https://www.dns-shop.ru/catalog/17a892f816404e77/noutbuki/'
HEADERS = {'user-agent': ua.random}


def get_html(url, params=''):
    r = requests.get(url, headers=HEADERS, params=params)
    return r


# catalog-item

def get_content(html):
    soup = BeautifulSoup(html.text, 'html.parser')
    items = soup.find_all('div', class_='n-catalog-product')
    notebook = []
    for item in items:
        notebook.append({
            'title': item.find('a', class_='ui-link').get_text(),
            'product-info': item.find('span', class_='product-info__title-description').get_text(),
            'product-price': item.find('div', class_='product-price').get_text()
        })
    return notebook


def parser():
    html = get_html(URL)
    print(get_content(html))


if __name__ == '__main__':
    parser()
  • Вопрос задан
  • 2225 просмотров
Пригласить эксперта
Ответы на вопрос 1
rewen
@rewen
#byrew
BeautifulSoup(html.text, 'html.parser')
попробовать BeautifulSoup(html.text, 'lxml') (сначала установить lxml библиотеку)

может
item.find('a', class_='ui-link').text

на будущее - читайте "чистый код" и хотя бы просто любую книгу по python.
не желательно использовать переменные , как Вы их объявили.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы