我正在Python中運行Scrapy蜘蛛來從網站上抓取圖像。嘗試其他方法後,我試圖實現一個ImagesPipeline來做到這一點。Scrapy ImagesPipeline沒有下載圖像
items.py
class NHTSAItem(scrapy.Item):
image_urls = scrapy.Field()
images = scrapy.Field()
settings.py:
ITEM_PIPELINES = {'scrapy.pipelines.images.ImagesPipeline': 1}
IMAGES_STORE = 'C:\Users\me\Desktop'
myspider.py
def parse_photo_page(self, response):
item = NHTSAItem()
for sel in response.xpath('//table[@id="tblData"]/tr'):
url = sel.xpath('td/font/a/@href').extract()
table_fields = sel.xpath('td/font/text()').extract()
if url:
base_url_photo = "http://www-nrd.nhtsa.dot.gov"
full_url = base_url_photo + url[0]
if not item:
item['image_urls'] = [full_url]
else:
item['image_urls'].append(full_url)
return item
有沒有錯誤這些圖片就不會被下載。調試器甚至說「抄襲」這裏的日誌:
DEBUG: Scraped from <200 http://www-nrd.nhtsa.dot.gov/database/VSR/veh/../SearchMedia.aspx?database=v&tstno=4000&mediatype=p&p_tstno=4000>
{'image_urls': [u'http://www-nrd.nhtsa.dot.gov/database/MEDIA/GetMedia.aspx?tstno=4000&index=1&database=V&type=P',
u'http://www-nrd.nhtsa.dot.gov/database/MEDIA/GetMedia.aspx?tstno=4000&index=2&database=V&type=P',
u'http://www-nrd.nhtsa.dot.gov/database/MEDIA/GetMedia.aspx?tstno=4000&index=3&database=V&type=P',
u'http://www-nrd.nhtsa.dot.gov/database/MEDIA/GetMedia.aspx?tstno=4000&index=4&database=V&type=P',
u'http://www-nrd.nhtsa.dot.gov/database/MEDIA/GetMedia.aspx?tstno=4000&index=5&database=V&type=P']}
我不關心延長管線(使自定義管道),默認imagespipeline是罰款。圖像無處可尋。任何想法我做錯了什麼?
不知道是什麼問題。它可能是關於Windows上的'IMAGES_STORE'嗎?下面是Ubuntu上的一個工作示例:https://gist.github.com/redapple/396faaaaf8fcc0f77c10 –
'allowed_domains'中有什麼? – Steve
這些都是asp.net的參考,我不認爲scrapy會觸摸它們。嘗試一起使用硒廣告scrapy。 – Steve