Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫。

编写一个Scrapy项目需要以下几个简单的流程:

  创建一个Scrapy项目

scrapy startproject projectName
cd projectName
scrapy genspider baidu baidu.com

  

  然后就会在你的集成化工具上出现创建的项目:

  

 

  定义提取的Item(你需要爬取的数据的容器)

1 import scrapy
2 class DmozItem(scrapy.Item):
3     title = scrapy.Field()
4     link = scrapy.Field()
5     desc = scrapy.Field()

View Code

  编写爬取网站的 spider 并提取 Item

1 import scrapy
2 class BaiduSpider(scrapy.Spider):
3     name = 'baidu'
4     allowed_domains = ['baidu.com']
5     start_urls = ['http://baidu.com/']
6 
7     def parse(self, response):
8         #主要爬取代码编写区
9          pass

View Code

  编写 Item Pipeline 来存储提取到的Item(即数据)

1 class ProjectnamePipeline(object):
2     def process_item(self, item, spider):
3         #对爬取到的数据进行处理
4         return item

View Code

  运行项目

    方法一:cmd命令行输入运行 Scrapy 项目

scrapy crawl baidu #这里的baidu是spider的名字不是项目名,是唯一的

    方法二:.py文件运行 Scrapy 项目

    创建 runBaidu.py 文件

    

1 from scrapy import cmdline
2 cmdline.execute("scrapy crawl baidu".split())

View Code

 

 

 

  

posted on 2018-02-25 09:23 Spider_Maker 阅读() 评论() 编辑 收藏
版权声明:本文为SpiderElliot原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/SpiderElliot/p/8468604.html