Scrapy-简单介绍
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
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