Intro Привет, я использую Scrapy для получения данных в Yahoo Answer. Мое достижение - принять все вопросы и ответ в одном точном разделе.Использование рекурсии Spider in Scrapy [Python]
Стараюсь Использование Scrapy и селена в первую очередь я пытаюсь взять список любого вопроса в разделе, этот список запоминают в классе паука. После того, как я использую цикл For для анализа каждой отдельной страницы.
for url in self.start_urls_mod:
yield scrapy.Request(url, callback=self.parse_page)
i = i + 1
метод parse_page структурирована для scrapying страницу вопроса, лучший ответ и все другие ответы. Это прекрасно работает.
Проблема проблема возникает, когда я пытаюсь перейти на «Следующий» вопрос, используя ссылку href в следующей строке, приведенной по следующей ссылке в правой части страницы. Я вызываю снова ту же самую функцию parse_page, передавая URL-адрес из этой ссылки. Иногда эта работа, но в другое время нет. Я не сейчас, если правильно вызывать два раза функцию parse_page, без использования какого-либо базового кода в другом, чтобы остановить рекурсию в любом случае.
Программа работает без ошибок и останавливается, но в разделе «Следующий» я не задаю никаких вопросов. Только кто-то.
Существует фрагмент кода.
def parse_page(self, response):
#Scraping with xpath things that interests me
#Go to the next similar question
next_page = hxs.xpath('((//a[contains(@class,"Clr-b")])[3])/@href').extract()
composed_string = "https://answers.yahoo.com" + next_page[0]
print("NEXT -> "+str(composed_string))
yield scrapy.Request(urljoin(response.url, composed_string), callback=self.parse_page)
пс. Я бы использовал паука-паука, но я не могу определить какие-либо правила, чтобы принимать только этот тип вопроса. Поэтому, пожалуйста, как я могу улучшить свою функцию.
Информация: https://answers.yahoo.com/question/index?qid=20151008101821AAuHgCk
Спасибо, человек, так что это будет правильный доход? урожай scrapy.Request (created_string, callback = self.parse_page) – RedVelvet
Добро пожаловать. Да, это будет правильный доход. – GHajba
Большое спасибо, я попытаюсь с этим предложением! и я дам вам знать! – RedVelvet