Scrapy Spider在我的笔记本电脑上下载图像,而在另一台笔记本电脑上却没有

kcrjzv8t  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(190)

我有一个问题与Scrapy它是下载图像刚刚好在我的笔记本电脑上,但当我发送客户端的代码,它只是刮数据不下载图片。你能帮我吗?
这是代码
第1001章:我的settings.py

ITEM_PIPELINES = {'project_mohie.pipelines.customImagePipline': 1}
IMAGES_STORE = 'local_folder'

第1001章:我的pipelines.py

class customImagePipline(ImagesPipeline):
    def file_path(self, request, response=None, info=None, *, item=None):
        return f"{item['EAN Code']}_{item['image_urls'].index(request.url)}.jpg"

第1001章:我的items.py

class ProjectMohieItem(scrapy.Item):
    image_urls=scrapy.Field()
    images=scrapy.Field()

客户端使用python 3.7.3,因为他运行的是windows7。我尝试了所有的方法,它在我的笔记本电脑上都能正常工作,我甚至试着在自定义设置中添加它,但都不工作

custom_settings = {
        'FEEDS': {
            'data.csv': {
            'format': 'csv',
            'encoding': 'utf-8-sig',
            'store_empty': False,
            'fields': None,
            'indent': 4,
            'item_export_kwargs': {'export_empty_fields': True,},
        }
    },
        "ITEM_PIPELINES": {'scrapy.pipelines.images.ImagesPipeline': 1},
        "IMAGES_STORE" :'local_folder'
}
lp0sw83n

lp0sw83n1#

我不能肯定地说为什么它不能在你客户的设备上工作。目前我正在使用以下片段来检索所有图片从刮网页:

settings.py

ITEM_PIPELINES = {
    'myproject.pipelines.customImagePipeline': 1
}
IMAGES_STORE = 'local_img_folder'

pipelines.py

class customImagePipeline(ImagesPipeline):
    def file_path(self, request, response=None, info=None, *, item=None):
        return request.url.split('/')[-1]

items.py

class ScrapingImagesItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    pass

myspider.py


# Images

raw_image_urls = response.css('img::attr(src)').getall() 
clean_image_urls=[]
for img_url in raw_image_urls:
    clean_image_urls.append(response.urljoin(img_url))

yield {
    'image_urls': clean_image_urls
}

这样图片就保存在本地文件夹“local_img_folder”中,并使用原始文件名。我希望这对您的项目也有帮助:)

相关问题