Извлеченные ссылки при сканировании

Мне нужно просканировать веб-сайт и, например, просканировать каждый URL-адрес этого сайта по определенному пути xpath.: Мне нужно просканировать "http://someurl.com/world/", который имеет 10 ссылок в контейнере (xpath("//div[@class='pane-content']")), и мне нужно просканировать все эти 10 ссылок и извлекать из них изображения, но ссылки в "http://someurl.com/world/" выглядят как "http://someurl.com/node/xxxx"

что у меня есть до сих пор:

import scrapy
from scrapy.contrib.spiders import Rule, CrawlSpider
from scrapy.contrib.linkextractors import LinkExtractor
from imgur.items import ImgurItem

class ImgurSpider(CrawlSpider):
    name = 'imgur'
    allowed_domains = ['someurl.com/']
    start_urls = ['http://someurl.com/news']
    rules = [Rule(LinkExtractor(allow=('/node/.*')), callback='parse_imgur', follow=True)]

    def parse_imgur(self, response):
        image = ImgurItem()
        image['title'] = response.xpath(\
            "//h1[@class='pane-content']/a/text()").extract()
        rel = response.xpath("//img/@src").extract()
        image['image_urls'] = response.xpath("//img/@src").extract()
        return image

person Nikola Niko    schedule 24.10.2015    source источник


Ответы (1)


Вы можете переписать свое «Правило», чтобы учесть все ваши требования:

rules = [Rule(LinkExtractor(allow=('/node/.*',), restrict_xpaths=('//div[@class="pane-content"]',)), callback='parse_imgur', follow=True)]

Чтобы загрузить изображения из извлеченных ссылок на изображения, вы можете использовать пакет Scrapy ImagePipeline

person Arijit C    schedule 25.10.2015