第十六节: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文件进行讲解。

 

posted @ 2019-04-12 14:56  懒惰的小松鼠  阅读(2484)  评论(0编辑  收藏  举报