管道错误,无法导入nam

2024-10-01 13:29:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉python编程和使用scrapy。我已经设置了我的爬虫,到目前为止,它一直在工作,直到我想知道如何下载图像。我得到的错误是无法导入名称nsiscrappeline。我不知道我做错了什么,我也不理解一些文件,因为我是新来的。请帮忙

项目文件

from scrapy.item import Item, Field

class NsiscrapeItem(Item):
    # define the fields for your item here like:
    # name = Field()
    location = Field()
    stock_number = Field()
    year = Field()
    manufacturer = Field()
    model = Field()
    length = Field()
    price = Field()
    status = Field()
    url = Field()

    pass

蜘蛛

^{pr2}$

设置

ITEM_PIPELINES = ['scrapy.contrib.pipeline.image.NsiscrapePipeline']
IMAGES_STORE = 'c:\Python27\NSIscrape\IMG'
IMAGES_EXPIRES = 90

这是我不确定我是否遗漏了什么

from scrapy.item import Item 

class NsiscrapePipeline(Item):
image_urls = Field()
    images = Field()

    def process_item(self, item, spider):
        return item

错误

File "NSIscrape\spiders\NSI_Spider.py", line 9, in <module>
from scrapy.contrib.pipeline.images import NsiscrapePipeline
ImportError: cannot import name NsiscrapePipeline

Tags: 文件namefromimageimportfieldpipeline错误
3条回答

您试图传递列表,但此函数只接受字符串。从列表中只传递一个元素(例如list[0])。在

这是我最后一个有效的代码。有两个问题

1:我缺少请求中需要的第二个反斜杠>;//td[1]/a[3]/img/@data original

他说:我必须检查显示图像的完整URL,然后将它们连接在一起,即主URL或允许的URL和图像URL。在

def parse(self, response):
    hxs = HtmlXPathSelector(response)
    images = hxs.select('//tr')
    url = []
    for image in images:
        urls = NsiscrapeItem()
        urls['image_urls'] = ["http://www.yachtauctions.com" +  x for x in image.select('//td[1]/a[3]/img/@data-original').extract()]
        url.append(urls)
    return url

这不是库的一部分:)-至少通过查看它们当前的master branch

我想你在找ImagesPipeline

他们的榜样可能会有所帮助!example

另外,我不认为你定制了这个类的名字——至少不是根据scapy的设计来命名的;我有理由肯定你使用了他们的类;)


相关问题 更多 >