Я перебираю веб-сайт, на который занесено iPhone дел.
Веб-скребок должен собрать название продукта и цену. Когда я запускаю программу, мой код вылетает, и я получаю эту ошибку:
Traceback (most recent call last):
File "phonecases.py", line 12, in <module>
price = content.find(class_="products-grid-price").get_text().replace('\n','')
AttributeError: 'NoneType' object has no attribute 'get_text'
Это потому, что некоторые товары продаются, когда товар не продается, класс равен products-grid-price
и когда товар продается, класс равен products-grid-price-sale
. Поэтому программа собирает нужные мне данные до тех пор, пока не достигнет предмета в продаже, а затем происходит сбой.
Как исправить мою программу, чтобы она либо пропускала товар в продаже, либо собирала его как другую точку данных?
Это мой код:
import requests
from bs4 import BeautifulSoup
url = 'https://www.cellphonecases.com/Apple-Iphone-11-C2429.html?page='
for page in range(1, 5):
response = requests.get(url + str(page))
soup = BeautifulSoup(response.text, 'html.parser')
contents = soup.find_all(class_="products-grid-container-out")
for content in contents:
title = content.find(class_="products-gridname").get_text().replace('\n','')
price = content.find(class_="products-grid-price").get_text().replace('\n','')
print(title, price)