Отличный метод дебага - метод уточки. Берешь резиновую уточку, ставишь на стол и объясняешь ей каждую строчку, чтобы она поняла. И сам видишь ошибки если они есть. Я этот метод сейчас зря не использовал)
не понял( productdata = page.xpath('//*[contains(@class, "js-catalog-product")]'@class, "js-catalog-product")]') page у меня просто строка. Как заставить работать?