Цель этой функции - проверить, недоступен ли элемент Amazon или нет.
def check(url):
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
page = requests.get(url, headers = headers)
doc = html.fromstring(page.content)
XPATH_AVAILABILITY = '//div[@id ="availability"]//text()'
RAw_AVAILABILITY = doc.xpath(XPATH_AVAILABILITY)
AVAILABILITY = ''.join(RAw_AVAILABILITY).strip()
if any(re.match(r'unavailable', str(AVAILABILITY), re.IGNORECASE)):
return "UNAVAILABLE"
else:
return "AVAILABLE"
Я проверил type()
переменной AVAILABILITY
(это строка), и она выглядит следующим образом когда элемент недоступен:
Currently unavailable.
We don't know when or if this item will be back in stock.
и вот так (тип: строка), когда он доступен:
In Stock.
или In stock.
Вот почему я выбрал для регулярного выражения для обнаружения «недоступен» на выходе. Но ошибка говорит:
Файл "scra.py", строка 68, в
, если есть (re.match (r'unavailable ', check (i), re. IGNORECASE)):
TypeError: объект 'NoneType' не повторяется
Он никогда не выводит "None", поэтому я удивлен. Пожалуйста, помогите мне решить эту проблему.