2015-10-16 5 views
1

Я пытаюсь использовать Scrapy для сканирования Imgur для изображений, но у меня проблемы.Изображение скребок с «Scrapy» не получило результатов

Паук, похоже, работает нормально, но он не может перейти на сайт и выполнять работу.

Я не могу найти место, где я винт вверх ..

items.py

import scrapy 


class ImgurItem(scrapy.Item): 
    title = scrapy.Field() 
    image_urls = scrapy.Field() 
    images = scrapy.Field() 

setting.py

BOT_NAME = 'imgur' 

SPIDER_MODULES = ['imgur.spiders'] 
NEWSPIDER_MODULE = 'imgur.spiders' 
ITEM_PIPELINES = {'scrapy.pipelines.images.ImagesPipeline': 1} 
IMAGES_STORE = '\Users\123\Desktop\images' 

imgur_spider.py

import scrapy 

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

class ImgurSpider(CrawlSpider): 
    name = 'imgur' 
    allowed_domains = ['imgur.com'] 
    start_url = ['http://imgur.com'] 
    rules = [Rule(LinkExtractor(allow=['/gallery/.*']), 'parse_imgur')] 

    def parse_imgur(self, response): 
     image = ImgurItem() 
     image['title'] = response.xpath("//h2[@id='image-title']/text()").extract() 
     rel = response.xpath("//img/@src").extract() 
     image['image_urls'] = ['http:'+rel[0]] 
     return image 

Вход

2015-10-16 16:36:50 [scrapy] INFO: Scrapy 1.0.3 started (bot: imgur) 
2015-10-16 16:36:50 [scrapy] INFO: Optional features available: ssl, http11 
2015-10-16 16:36:50 [scrapy] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'imgur.spiders', 'SPIDER_MODULES': ['imgur.spiders'], 'BOT_NAME': 'imgur'} 
2015-10-16 16:36:50 [scrapy] INFO: Enabled extensions: CloseSpider, TelnetConsole, LogStats, CoreStats, SpiderState 
2015-10-16 16:36:50 [scrapy] INFO: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, UserAgentMiddleware, RetryMiddleware, DefaultHeadersMiddleware, MetaRefreshMiddleware, HttpCompressionMiddleware, RedirectMiddleware, CookiesMiddleware, ChunkedTransferMiddleware, DownloaderStats 
2015-10-16 16:36:50 [scrapy] INFO: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware 
2015-10-16 16:36:50 [scrapy] INFO: Enabled item pipelines: ImagesPipeline 
2015-10-16 16:36:50 [scrapy] INFO: Spider opened 
2015-10-16 16:36:50 [scrapy] INFO: Crawled 0 pages (at 0 pages/min), scraped  0 items (at 0 items/min) 
2015-10-16 16:36:50 [scrapy] DEBUG: Telnet console listening on 127.0.0.1:6023 
2015-10-16 16:36:50 [scrapy] INFO: Closing spider (finished) 
2015-10-16 16:36:50 [scrapy] INFO: Dumping Scrapy stats: 
{'finish_reason': 'finished', 
'finish_time': datetime.datetime(2015, 10, 16, 15, 36, 50, 469000), 
'log_count/DEBUG': 1, 
'log_count/INFO': 7, 
'start_time': datetime.datetime(2015, 10, 16, 15, 36, 50, 462000)} 
2015-10-16 16:36:50 [scrapy] INFO: Spider closed (finished) 

ответ

1

Ваш искатель будет http://imgur.com/gallery/Kgb24, а затем ищет все ссылки, содержащие «/ gallery /» (дополнительные * не нужны). Он не находит каких-либо (потому что их нет на странице), и поэтому гусеница заканчивается.

EDIT: После очистки кода он выскочил, что start_url = ... должен быть start_urls = .... Как и в случае, Scrapy не захватывает ничего, потому что он не предоставляется нигде для начала.

+0

О, это мое плохое! Забыл изменить его обратно. Должен быть «http://imgur.com/», который является первой страницей, на которой он должен перейти в галереи. Проблема все еще существует. – Jomasdf

+0

@ user2514200 Я изменил это и исправил ваш отступ в предоставленном коде. Прежде чем продолжить, можете ли вы проверить, чтобы он точно представлял то, что у вас есть на вашем гусеничном ходу сейчас? – Rejected

+0

Да, кроме удаления дополнительного * вы упомянули. – Jomasdf

Смежные вопросы