如何使用wget和scrapy下载文件

5

Scrapy无法正确下载文件。我有我的项目的URL,所以我想我可以使用wget来下载文件。

我如何在Scrapy的process_item函数中使用wget?或者,还有其他下载文件的方式吗?

class MyImagesPipeline(ImagesPipeline):
    #Name download version
    def image_key(self, url):
        image_guid = url.split('/')[-1]
        return 'full/%s' % (image_guid)

    def get_media_requests(self, item, info):
        if item['image_urls']:
            for image_url in item['image_urls']:
            # wget -nH image_ul -P  images/
            yield Request(image_url)

你想要实现什么,目前你已经尝试了什么? - Tadeck
我正在使用Scrapy下载图像,但由于Scrapy中的某些错误,gif动画被下载为静态图像而非动画。因此,我考虑直接使用wget下载图像,而不是编写图像。我将发布我的管道代码。 - user19140477031
1个回答

4

这段代码将会执行wget,你可以使用以下代码替换它:

import subprocess

    ...

subprocess.call(['wget','-nH', image_url, '-P  images/'])

您可以在这里阅读 subprocess.call 的相关信息:http://docs.python.org/2/library/subprocess.html


我收到了这个错误信息:“wget: illegal option -- ‘-n” - user19140477031
我编辑了我的回答:我忘记分割参数了,现在应该是正确的。 - furins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接