Scrapy - проанализируйте страницу для извлечения элементов - затем следуйте и сохраните содержимое URL элемента

У меня вопрос, как это сделать в scrapy. У меня есть паук, который сканирует страницы со списком предметов. Каждый раз, когда обнаруживается страница со списком элементов, возникает обратный вызов parse_item (), который вызывается для извлечения данных элементов и получения элементов. Пока все хорошо, все работает отлично.

Но каждый элемент, среди прочих данных, имеет URL-адрес с более подробной информацией об этом элементе. Я хочу перейти по этому URL-адресу и сохранить в другом поле элемента (url_contents) извлеченное содержимое URL-адреса этого элемента.

И я не уверен, как организовать код для этого, поскольку две ссылки (ссылка на листинг и одна ссылка на конкретный элемент) отслеживаются по-разному, с обратными вызовами, вызываемыми в разное время, но я должен соотносить их в обработка того же элемента.

Мой код пока выглядит так:

class MySpider(CrawlSpider):
    name = "example.com"
    allowed_domains = ["example.com"]
    start_urls = [
        "http://www.example.com/?q=example",
    ]

    rules = (
        Rule(SgmlLinkExtractor(allow=('example\.com', 'start='), deny=('sort='), restrict_xpaths = '//div[@class="pagination"]'), callback='parse_item'),
        Rule(SgmlLinkExtractor(allow=('item\/detail', )), follow = False),
    )


    def parse_item(self, response):
        main_selector = HtmlXPathSelector(response)
        xpath = '//h2[@class="title"]'

        sub_selectors = main_selector.select(xpath)

        for sel in sub_selectors:
            item = ExampleItem()
            l = ExampleLoader(item = item, selector = sel)
            l.add_xpath('title', 'a[@title]/@title')
            ......
            yield l.load_item()
23
задан StefanH 30 April 2011 в 11:07
поделиться