天天看點

scrapy擷取網頁内容和圖檔下載下傳

首先在終端指令行菜單鍵+R輸入cmd進入指令行

然後再終端輸入cd+空格 把儲存的位址拉擷取:

在存儲的路徑下建立一個小的項目輸入scrapy startproject QiuShi,然後輸入cd QiuShi進入項目下再然後輸入建立scrapy genspider qiushi qiushibaike.com

建立好最後的結果是如下圖:

scrapy擷取網頁内容和圖檔下載下傳

我們直接進入主題:點選qiushi.py進入寫代碼界面:

scrapy擷取網頁内容和圖檔下載下傳
scrapy擷取網頁内容和圖檔下載下傳
scrapy擷取網頁内容和圖檔下載下傳

擷取熱圖裡面的所有内容和圖檔下載下傳;完整代碼:

# -*- coding: utf-8 -*-
import scrapy
from  .. items import QiushiItem
class QiushiSpider(scrapy.Spider):
    name = 'qiushi'
    allowed_domains = ['qiushibaike.com']
    start_urls = ['https://www.qiushibaike.com/imgrank']

    def parse(self, response):
        # 擷取文本内容
        content_list = response.xpath('//div[@class="content"]/span/text()').extract()
        # 擷取圖檔連結
        thumb_list = response.xpath('//div[@class="thumb"]/a/img/@src').extract()
      

        item = QiushiItem()
        for content in content_list:
   
            # 去掉換行
            out_list = content.strip()
            # 内容儲存txt格式
            with open('baike.txt', 'a', encoding='utf-8')as f:
                f.write(out_list)
                f.write('\n')

        for thumb in thumb_list:
            #拼接圖檔連結
            url = 'https:' + thumb
           
            item['url'] = [url]
            yield item
        # 擷取下一頁的連結
        next_url=response.xpath('//ul[@class="pagination"]/li[last()]/a/@href').extract()
    
        if len(next_url) != 0:
            # 拼接下一頁網址
            nextUrl = 'http://www.qiushibaike.com' + next_url[0]
          
            yield scrapy.Request(url=nextUrl,callback=self.parse)      

我們先進入items.py:

scrapy擷取網頁内容和圖檔下載下傳
scrapy擷取網頁内容和圖檔下載下傳

接着我們進入settings.py配置管道:

scrapy擷取網頁内容和圖檔下載下傳
scrapy擷取網頁内容和圖檔下載下傳
scrapy擷取網頁内容和圖檔下載下傳
scrapy擷取網頁内容和圖檔下載下傳

配置好以後我們在終端輸入scrapy crawl qiushi來運作:

輸出的結果:

scrapy擷取網頁内容和圖檔下載下傳
scrapy擷取網頁内容和圖檔下載下傳