3

コースに関する情報を含む Web ページをスクレイピングしています。このページには評価ページへのリンクも年ごとに 1 つずつあり、1 対 N の関係があります。メインページを解析するメソッドと評価ページを解析するメソッドがあります。最初のメソッドは、見つかったリンクごとに 2 番目のメソッドを呼び出します。

私の質問は、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
4

1 に答える 1