Scrapy 將爬取圖片下載到本地

2022-07-25 00:30:33 字數 1898 閱讀 4559

1. spider程式:

1

import

scrapy, json

2from unsplashimagespider.items import

imageitem34

class

unsplashimagespider(scrapy.spider):5#

定義spider的名稱

6 name = '

unsplash_image

'7 allowed_domains = ['

unsplash.com']

8#定義起始頁面

9 start_urls = ['

']10def

__init__

(self):

11 self.page_index = 1

1213

defparse(self, response):14#

解析伺服器響應的json字串

15 photo_list = json.loads(response.text) #①16

#遍歷每張

17for photo in

photo_list:

18 item =imageitem()

19 item['

image_id

'] = photo['id'

]20 item['

download

'] = photo['

links

']['

download']

21yield

item

2223 self.page_index += 124#

25 next_link = '

'\26 + str(self.page_index) + '

&per_page=12'27

#28yield scrapy.request(next_link, callback=self.parse)

2. 在pipeline中使用urllib.request包直接下載圖片:

1

from urllib.request import *23

class

unsplashimagespiderpipeline(object):

4def

process_item(self, item, spider):5#

6print('

----------

' + item['

image_id'])

7 real_url = item['

download

'] + "

?force=true"8

try:

9pass10#

開啟url對應的資源

11with urlopen(real_url) as result:12#

讀取資料

13 data =result.read()14#

開啟檔案

寫入讀取的資料

17f.write(data)

18except:19

print('

' % item['

image_id

'])

scrapy 爬取流程

什麼時候到pipeline,什麼 時候到spider這個就不說了,這個是框架跳轉到的流程 關鍵是訪問之前要登入怎麼辦,資料還要注入呢 這是個列表,裡面就是爬取的鏈結了 我們前面爬取就只是寫了乙個,但是其實可以寫多個 鏈結又是怎麼訪問的呢 這東西你就可以手動提取鏈結返回了 這東西你就得好好注意了 從入...

scrapy 爬取小說

速度是相當的快的 爬取整站的 最後結果儲存至mongodb資料庫 pycharm開發還是很好用的 建立專案 scrapy startproject daomubiji 執行專案 scrapy crawl daomubi settings default request headers items t...

scrapy爬取噹噹

import scrapy from items import dangdangitem class ddspider scrapy.spider name dd allowed domains dangdang.com start urls def parse self,response 使用xp...