Я соскабливаю веб-страницу с информацией о курсе. На странице также есть ссылки на страницы оценки, по одному на каждый год, так что есть 1-to-N отношения. У меня есть метод для анализа главной страницы и метода для анализа страницы оценки. Первый метод вызывает второй метод для каждой найденной ссылки.Scrapy - слияние результатов с N страниц, происходящих из одной страницы
Мой вопрос: где я должен вернуть объект Item?
def parse_course(self, response):
hxs = HtmlXPathSelector(response)
main_div = select_single(hxs, '//div[@class = "CourseViewer"]/div[@id = "pagecontents"]')
course = CourseItem()
# here I scrape basic info about the item
self.process_heading(main_div, course)
grades_table = select_single(hxs, '//td[@class = "ContentMain"]//table[contains(tr/td/b/text(), "Grades")]')
grade_links = grades_table.select('tr[2]/td[2]/a/@href').extract()
for link in grade_links:
yield Request(link, callback = self.parse_grade_dist_page, meta = {'course' : course})
def parse_grade_dist_page(self, response):
course = response.meta['course']
# scrape additional data and store it in CourseItem