Python Scrapy-合并来自单个页面的N个页面的结果
我正在浏览一个网页,上面有一门课程的信息。该页面还具有指向评估页面的链接,每年一个,因此存在一对N关系。我有一个解析主页的方法和一个解析评估页面的方法。第一个方法为找到的每个链接调用第二个方法 我的问题是,我应该在哪里返回Item对象Python Scrapy-合并来自单个页面的N个页面的结果,python,scrapy,Python,Scrapy,我正在浏览一个网页,上面有一门课程的信息。该页面还具有指向评估页面的链接,每年一个,因此存在一对N关系。我有一个解析主页的方法和一个解析评估页面的方法。第一个方法为找到的每个链接调用第二个方法 我的问题是,我应该在哪里返回Item对象 def parse_course(self, response): hxs = HtmlXPathSelector(response) main_div = select_single(hxs, '//div[@class = "CourseVie
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
有许多方法,以下是一些:
@inline_requests
def parse_course(self, response):
# ...
for link in grade_links:
try:
response = yield Request(link)
except Exception as e:
# handle the exception here
pass
else:
# extract the data here
pass
# at the end yield the item