Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 其能够应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取所设计的, 也能够应用在获取API所返回的数据或者通用的网络爬虫。json
Scrapy原理图以下:网络
一、建立Scrapy项目:进入你须要建立scrapy项目的文件夹下,输入scrapy startproject BLZX(此处BLZX为爬虫项目名称)框架
项目建立完成后出现一个scrapy框架自动给你生成的爬虫目录dom
二、进入建立好的项目当中建立spider爬虫文件blzxSpider:scrapy
cd BLZXide
scrapy genspider blzxSpider image.so.com (其中image.so.com为爬取数据的连接)网站
到此咱们的scrapy爬虫项目已经建立完成,目录以下:url
建立好了blzxSpider爬虫文件后scrapy将会在改文件当中自动生成 以下代码,咱们就能够在这个文件当中进行编写代码爬取数据了。spa
# -*- 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
三、爬取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文件进行讲解。