第十六節:Scrapy爬蟲框架之項目創建spider文件數據爬取


Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。 其可以應用在數據挖掘,信息處理或存儲歷史數據等一系列的程序中。其最初是為了頁面抓取所設計的, 也可以應用在獲取API所返回的數據或者通用的網絡爬蟲。

Scrapy原理圖如下:

1、創建Scrapy項目:進入你需要創建scrapy項目的文件夾下,輸入scrapy startproject BLZX(此處BLZX為爬蟲項目名稱)

項目創建完成后出現一個scrapy框架自動給你生成的爬蟲目錄

2、進入創建好的項目當中創建spider爬蟲文件blzxSpider:

cd BLZX

scrapy genspider blzxSpider  image.so.com  (其中image.so.com為爬取數據的鏈接)

到此我們的scrapy爬蟲項目已經創建完成,目錄如下:

 

創建好了blzxSpider爬蟲文件后scrapy將會在改文件當中自動生成 如下代碼,我們就可以在這個文件當中進行編寫代碼爬取數據了。

# -*- coding: utf-8 -*-
import scrapy


class BlzxspiderSpider(scrapy.Spider):
    name = 'blzxSpider'
    allowed_domains = ['image.so.com']
    start_urls = ['http://image.so.com/']

    def parse(self, response):
        pass

3、爬取360圖片玩轉的圖片,此時我們需要編寫blzxSpiser文件進行爬取360圖片

代碼如下

import scrapy
import json

class BoleSpider(scrapy.Spider):
    name = 'boleSpider'

    def start_requests(self):
        url = "https://image.so.com/zj?ch=photography&sn={}&listtype=new&temp=1"
        page = self.settings.get("MAX_PAGE")
        for i in range(int(page)+1):
            yield scrapy.Request(url=url.format(i*30))

    def parse(self,response):
        photo_list = json.loads(response.text)
        for image in photo_list.get("list"):
            id = image["id"]
            url = image["qhimg_url"]
            title = image["group_title"]
            thumb = image["qhimg_thumb_url"]
            print(id,url,title,thumb)

抓取的結果為

最后,我們已經將360圖片的信息已經抓取下來了並打印在的控制台當中。但是我們需要把數據給下載下來,並且進行存儲,所以在下一節當中會對item.py文件進行講解。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM