通过 imagepipeline 下载多个项目
Download multiple items through imagepipeline
我正在尝试从一个网站下载所有图像,但是我只能从每个 page/item 获得一张图像的 return。我正在尝试让我的蜘蛛下载页面上显示的所有图像。
for elem in response.xpath("//img"):
img_url = elem.xpath("@src").extract_first()
l.add_value('image_urls', [img_url])
l.add_value('url', response.url)
l.add_value('project', self.settings.get('BOT_NAME'))
l.add_value('spider', self.name)
l.add_value('server', socket.gethostname())
l.add_value('date', datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
return l.load_item()
当我将 .extract_first() 更改为 .extract() 时,蜘蛛停止到 运行,但是我不知道如何传递每个图像 url(可以有一个页面上有几十个)成为自己的项目 + 下载。
如有任何帮助,我们将不胜感激!
您只能得到一张图像,因为 return
会立即退出您的方法。使用 yield
而不是 return
以获得所需的行为。
详情见。
我正在尝试从一个网站下载所有图像,但是我只能从每个 page/item 获得一张图像的 return。我正在尝试让我的蜘蛛下载页面上显示的所有图像。
for elem in response.xpath("//img"):
img_url = elem.xpath("@src").extract_first()
l.add_value('image_urls', [img_url])
l.add_value('url', response.url)
l.add_value('project', self.settings.get('BOT_NAME'))
l.add_value('spider', self.name)
l.add_value('server', socket.gethostname())
l.add_value('date', datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
return l.load_item()
当我将 .extract_first() 更改为 .extract() 时,蜘蛛停止到 运行,但是我不知道如何传递每个图像 url(可以有一个页面上有几十个)成为自己的项目 + 下载。
如有任何帮助,我们将不胜感激!
您只能得到一张图像,因为 return
会立即退出您的方法。使用 yield
而不是 return
以获得所需的行为。
详情见