Я пытаюсь очистить сайт Amazon для продуктов, после достижения нормального процесса очистки я попытался добавить некоторую «сложность» в программу.
Моя идея состояла в том, чтобы из .txt получить определенныеключевые слова.С этими ключевыми словами я использовал панель поиска для поиска продуктов, которые соответствуют им, и просматривал данные.Это сработало просто отлично.
Проблема в том, что в зависимости от ключевого слова, например, «Ноутбук» и «Обувь», анализатор должен работать по-разному, потому что обувь имеет разные размеры, цвета и т. Д., Поэтому данные, которые мне нужно почиститьот «обувного» продукта отличается от данных, которые мне нужны от «портативного» продукта.И вот где я нахожусь.
С некоторой помощью людей с этого сайта я смог вызвать другой парсер в зависимости от того, какое слово получил паук из .txt.Код выглядит примерно так:
def start_requests(self):
txtfile = open('productosABuscar.txt', 'r')
keywords = txtfile.readlines()
txtfile.close()
for keyword in keywords:
yield Request(self.search_url.format(keyword))
def parse_item(self,response):
#Here i get the keyword for comparisson later
category = re.sub('Back to search results for |"','', response.xpath('normalize-space(//span[contains(@class, "a-list-item")]//a/text())').extract_first())
#Here i get the product url for the next parser
productURL = response.request.url
if category == 'Laptop':
yield response.follow(productUrl, callback = self.parse_laptop)
def parse_laptop(self, response):
laptop_item = LaptopItem()
#Parsing things
yield laptop_item
Это должно работать нормально, но, когда я запускаю паука из консоли Anaconda, данные не удаляются.Странно то, что паук фактически получает доступ к каждому элементу «Ноутбука» на странице amazon, но не копирует с него данные.
В консоли я вижу каждую ссылку, к которой обращается паук, с помощью оператораНапример,
2018-12-27 10:02:36 [scrapy.core.engine] ОТЛАДКА: Crawled (200) https://www.amazon.com/Acer-Aspire-i3-8130U-Memory-E5-576-392H/dp/B079TGL2BZ/ref=sr_1_3/ref=sr_1_acs_bss_3_4?ie=UTF8&qid=1545915651&sr=8-3-acs&keywords=Laptop> (реферер: https://www.amazon.com/s?field-keywords=Laptop)
Есть что-тоне так с расположением парсера или это более глубокий вопрос?