Я создаю сканер для Amazon в целях обучения, но он распознается их капчей. Итак, я создал программу для решения капчи, но у меня возникли проблемы с ответом на форму капчи. Проблема в том, что если я помещу в метод yeild FormRequest, он, похоже, не будет вызван.
класс Havaianas2Spider(scrapy.Spider): name = 'coleta_dados_grafo' Rank_path = sorted([x для x в os.listdir('обрывки'), если 'links_base' в x],verse=True)[0] lista_links = pd.read_csv('записки/' + Rank_path) start_urls = lista_links['links'].values custom_settings = {'FEED_URI': "записки/продукты_%(время)s.csv", 'FEED_FORMAT': 'csv'} Final_path = '/?th=1&psc=1' защита base_path_get(сам, ответ): dp_idx = ответ.запрос.url.find('/dp/') + 4 базовый_путь = ответ.запрос.url[:dp_idx] вернуть базовый_путь defsolve_captcha(self, response, origin_method): self.logger.info('РАШЕНИЕ КАПЧИ!') captcha_url = response.xpath('//div[@class="a-row a-text-center"]/img/@src').extract_first() img = load_url (captcha_url) captcha_string = Break_captcha(img) img.save('C:/Users/Bruno Aquino/Documents/ecom_scraper/amazon_scraper/amazon_scraper/captchas/{}.jpg'.format( капча_строка)) выход FormRequest.from_response(ответ, formdata={'поле-ключевые слова': captcha_string}, обратный вызов=origin_method) защита проверить_иф_каптча (сам, ответ): captcha_url = response.xpath('//div[@class="a-row a-text-center"]/img/@src').extract_first() если captcha_url: self.logger.info('СТРАНИЦА {} ПОЛУЧЕНА CAPTCHA!'.format(response.request.url)) вернуть истину еще: вернуть ложь def parse(self, ответ): captcha = self.verify_if_captcha(ответ) если капча: self.solve_captcha(ответ, self.parse) еще: base_path = self.base_path_get(ответ) asin_colors = response.xpath('//div[@id="cerberus-data-metrics"]/@data-asin').extract() +\ [x[4:14] для x в ответе.xpath('//li[contains(@id,"color_name_")]/@data-dp-url').extract() if '/dp/' в x ] для asin в asin_colors: новый_путь = базовый_путь + asin + self.final_path если асин: выход Scrapy.Request( ответ.urljoin(новый_путь), обратный вызов = self.parse_l2) под формой проверки подлинности Amazon
Введите символы, которые видите на этом изображении:

Введите символы Попробуйте другое изображение Продолжить покупки Я поместил в код два журнала.
Первая часть проверки_if_captcha:
self.logger.info('СТРАНИЦА {} ПОЛУЧЕНА CAPTCHA!'.format(response.request.url)) Это напечатано
Второй внутриsolve_captcha:
self.logger.info('РАШЕНИЕ КАПЧИ!') Этот никогда не печатается
Может кто-нибудь мне помочь, пожалуйста?