from pathlib import Path
from selenium import webdriver
from bs4 import BeautifulSoup
import pandas
chromedriver_file = Path(r'C:\Users\username\Downloads\chromedriver_win32'
r'\chromedriver.exe')
driver = webdriver.Chrome(f'{chromedriver_file}')
products = []
prices = []
driver.get('https://www.dns-shop.ru/catalog/17a892f816404e77/noutbuki/')
content = driver.page_source
soup = BeautifulSoup(content, features='lxml')
for item in soup.findAll('div', attrs={'class': 'n-catalog-product__main'}):
name = item.find('a', attrs={'class': 'ui-link'})
price = item.find('div', attrs={'class': 'product-price__current'})
products.append(name.text)
prices.append(price.text)
result = pandas.DataFrame({'Product Name': products, 'Price': prices})
result.to_csv('dns-products.csv', index=False, encoding='utf-8')
При выполнении кода ошибка вылетает на строке, где нужно добавить в список цен (prices) саму цену (переменную price), ошибка AttributeError: 'NoneType' object has no attribute 'text'. То есть парсер по какой-то причине ничего в нее не сохраняет. С названиями (переменная name) таких проблем нет, и если переписать код убрав переменную price, то csv файл с одними названиями создается без ошибок.