【问题标题】:Diagnose why my scrapy spider isn't downloading images诊断为什么我的爬虫没有下载图像
【发布时间】:2014-05-08 15:07:19
【问题描述】:

我有一个简单的scrapy项目。我正在爬 www.anthropologie.com 以出售商品。我想使用标准的 imagePipeline 来下载我正在抓取的销售项目。我在 settings.py 文件中启用了标准 imagePipeline 以及 IMAGE_STORE 的有效目录。我有必填字段 image_url 和图像。我的蜘蛛正在通过检查浏览器中的 url 来为图像报废正确的 url。当我运行蜘蛛时,它表明管道已启用。但是,我没有看到正在下载图像的迹象,并且我在正确的目录中找不到图像。

以下是我的代码示例:

settings.py:

BOT_NAME = 'LTTcrawlers'

SPIDER_MODULES = ['LTTcrawlers.spiders']
NEWSPIDER_MODULE = 'LTTcrawlers.spiders'
ITEM_PIPELINES = {'scrapy.contrib.pipeline.images.ImagesPipeline': 1}
IMAGES_STORE = 'images'

items.py

from scrapy.item import Item, Field


class saleItem(Item):

    image_url = Field()
    images = Field()
    retailer = Field()
    name = Field()
    prev_price = Field()
    sale_price = Field()
    link = Field()
    url = Field()

anthro_spider.py:

from scrapy.spider import Spider
from scrapy.selector import Selector

from LTTcrawlers.items import saleItem

class AnthroSpider(Spider):

    name = "anthro"
    allowed_domains = ['www.anthropologie.com']
    start_urls = [
    'http://www.anthropologie.com/anthro/category/clothing/shopsale-clothing.jsp?&id=SHOPSALE-CLOTHING&facetSelected=true&itemCount=100&bucketPriceHigh=10.0&cm_sp=LEFTNAV-_-PRICE-_-BUCKETPRICE%3C25.0'
    ]

def parse(self, response):

    sel = Selector(response)
    items = sel.xpath('//div[@class="category-items"]/div')

    sale_items = []

    for item in items:
        sale_item = saleItem()
        sale_item["retailer"] = "Anthropologie"
        sale_item["name"] = item.xpath("./div[@class='item-description']/a/text()").extract()[0].encode('ascii','ignore')
        sale_item["sale_price"]= item.xpath("./div[@class='item-description']/div/span/text()").extract()[0].encode('ascii', 'ignore')
        sale_item["prev_price"] = item.xpath("./div[@class='item-description']/div/span/span/text()").extract()[0].encode('ascii', 'ignore')
        sale_item["url"] = item.xpath("./div[@class='item-description']/a/@href"
        ).extract()[0].encode('ascii', 'ignore')
        sale_item["image_url"] = item.xpath('.//img/@data-original').extract()

        sale_items.append(sale_item)

    return sale_items

没有报告错误,所以我无法弄清楚我错过了什么。

【问题讨论】:

    标签: python scrapy


    【解决方案1】:

    在 items.py 文件中,应该是image_urls = Field()。不是image_url = Field()

    【讨论】:

    • 废话,令人尴尬的错字。难怪我在网上找不到任何东西来修复它。
    • 很难找到。我是通过写测试代码找到的。
    猜你喜欢
    • 2012-08-08
    • 1970-01-01
    • 2022-01-16
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    相关资源
    最近更新 更多