3
我是scrapy的新手。我正试图从here下载图像。我跟着Official-Doc和this article。
如何使用Scrapy下载图像?
我的settings.py样子:
BOT_NAME = 'shopclues'
SPIDER_MODULES = ['shopclues.spiders']
NEWSPIDER_MODULE = 'shopclues.spiders'
ROBOTSTXT_OBEY = True
ITEM_PIPELINES = {
'scrapy.contrib.pipeline.images.ImagesPipeline':1
}
IMAGES_STORE="home/pr.singh/Projects"
和items.py
样子:
import scrapy
from scrapy.item import Item
class ShopcluesItem(scrapy.Item):
# define the fields for your item here like:
# name = scrapy.Field()
pass
class ImgData(Item):
image_urls=scrapy.Field()
images=scrapy.Field()
我认为这两个文件都不错。但我无法写出正确的蜘蛛来获取图像。我可以抓取图片网址,但不知道如何使用imagePipeline
存储图片。
我的蜘蛛看起来像:
from shopclues.items import ImgData
import scrapy
import datetime
class DownloadFirstImg(scrapy.Spider):
name="DownloadfirstImg"
start_urls=[
'http://www.shopclues.com/canon-powershot-sx410-is-2.html',
]
def parse (self, response):
url= response.css("body div.site-container div#container div.ml_containermain div.content-helper div.aside-site-content div.product form#product_form_83013851 div.product-gallery div#product_images_83013851_update div.slide a#det_img_link_83013851_25781870")
yield scrapy.Request(url.xpath('@href').extract(),self.parse_page)
def parse_page(self,response):
imgURl=response.css("body div.site-container div#container div.ml_containermain div.content-helper div.aside-site-content div.product form#product_form_83013851 div.product-gallery div#product_images_83013851_update div.slide a#det_img_link_83013851_25781870::attr(href)").extract()
yield {
ImgData(image_urls=[imgURl])
}
我已经写了下面的this-article蜘蛛。但我没有得到任何东西。我运行我的蜘蛛scrapy crawl DownloadfirstImg -o img5.json
,但我没有得到任何json或任何图像?
如何获取图像的任何帮助,如果它的网址是已知的。我从来没有使用过python,所以对我来说看起来很复杂。任何优秀教程的链接可能会有帮助。 TIA
大,那几秒钟内工作。即使我对我在做什么感到困惑,但并不确定这一切是如何运作的。你能否提供除文档以外的一些优秀教程的链接。此外,该代码工作的第一次,之后我删除的图像,并试图再次我得到'蜘蛛错误处理(引荐:无)'?可能的原因是什么?顺便说一句,感谢帮助:) –
@PrashantPrabhakarSingh的错误发生后回溯告诉你什么是错的。错误的最后一行是什么? –
忘记它。我在目录中有一个损坏的文件,删除了一个,一切正常。我无法调试我的代码,因为即使我不知道我写了什么,我的代码只是一种复制粘贴。有没有好的教程/博客可以开始(除了他们的文档)?谢谢你。 –