python - 使用 "Scrapy"进行图像抓取没有结果

标签 python image web-crawler scrapy

我一直在尝试使用 Scrapy 抓取 Imgur 中的图像,但遇到了问题。

蜘蛛似乎工作正常,但无法继续访问该网站并完成工作。

我找不到我搞砸的地方..

项目.py

import scrapy


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

设置.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)

最佳答案

您的抓取工具将访问 /image/Rlnf7.jpg ,然后查找包含“/gallery/”的所有链接(不需要额外的 .*)。它没有找到任何内容(因为页面上没有任何内容),因此爬网程序完成。

编辑: 清理完代码后,跳出start_url = ...应该是start_urls = ...。事实上,Scrapy 没有捕获任何东西,因为它没有提供任何可以启动的地方。

关于python - 使用 "Scrapy"进行图像抓取没有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33174630/

相关文章:

python - 如何在不丢失身份验证的情况下模拟 Session.request?

python - 如何通过 Python 使用 Firebird 审计和跟踪服务?

python - 搜索查询仅适用于数据框的第一行

java - 当我在 Jpanel 中使用 drawImage 时,为什么它会失败

Java 将 Image 转换为 BufferedImage

php - 如何使用 cURL 和 PHP 抓取 LinkedIn 公司页面? No CSRF token found in headers 错误

asp.net-mvc - 主流搜索引擎无法抓取 MVC 站点?

Java:检查 robots.txt 是否允许 URL

python - Pygame碰撞精度问题

javascript - Fancybox不会向YouTube显示没有class-Tag的图像