Здесь:
foo = item.find_all('div', attrs={'class' : 'price'})
price = foo.text.strip()
find_all()
возвращает resultSet
(итерация по коллекции тегов), а не один тег.Если вы ожидаете иметь один единственный совпадающий тег в item
, используйте вместо него item.find(...)
:
foo = item.find('div', attrs={'class' : 'price'})
price = foo.text.strip()
, иначе итерируйте по набору результатов:
foos = item.find_all('div', attrs={'class' : 'price'})
prices = [foo.text.strip() for foo in foos]