天天看點

Python 使用scrapy爬蟲架構爬取圖檔下載下傳并儲存本地

Scrapy官方文檔:​​http://scrapy-chs.readthedocs.io/zh_CN/latest/index.html​​

基本按照文檔的流程過一遍基本就會用了:

在爬取之前,先建立一個新的Scrapy項目,進入終端,輸入下面指令:

scrapy startproject BiZhi

該指令将建立包含下面的内容tutorial目錄:

Python 使用scrapy爬蟲架構爬取圖檔下載下傳并儲存本地

在終端輸入下面指令進入該項目:

cd BiZhi

輸入我們需要爬取的網址:

scrapy genspider bizhi pic.netbian.com

我們主要編輯的如下圖箭頭所示:

Python 使用scrapy爬蟲架構爬取圖檔下載下傳并儲存本地

我們先進入spiders下面的bizhi.py進行編輯:

Python 使用scrapy爬蟲架構爬取圖檔下載下傳并儲存本地

1.下面是擷取圖檔和下載下傳完整代碼:

# -*- coding: utf-8 -*-
import scrapy
from ..items import BizhiItem

class BizhiSpider(scrapy.Spider):
    name = 'bizhi'
    allowed_domains = ['pic.netbian.com']
    start_urls = ['http://pic.netbian.com/']

    def parse(self, response):
        # 擷取圖檔
        picture_list = response.xpath('//ul[@class="clearfix"]/li/a//@src').extract()
        for picture in picture_list:
            # 拼接完整位址
            url = 'http://pic.netbian.com' + picture
            item = BizhiItem()
            item['url'] = [url]
            yield  item
            # 擷取下一頁位址連結
            next_url = response.xpath('//div[@class="page"]/a/@href').extract()
            for next in next_url:

                if len(next) != 0:
                    # 拼接下一頁完整位址
                    downPageUrl = 'http://pic.netbian.com' + next

                    yield scrapy.Request(url=downPageUrl,callback=self.parse)      

2.進入items.py進行編輯:

Python 使用scrapy爬蟲架構爬取圖檔下載下傳并儲存本地

3.進入settings.py進行編輯:

Python 使用scrapy爬蟲架構爬取圖檔下載下傳并儲存本地
Python 使用scrapy爬蟲架構爬取圖檔下載下傳并儲存本地

scrapy crawl bizhi