一 什么是scrapy框架
官方解释
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
其最初是为了 页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Associates Web Services ) 或者通用的网络爬虫
自己理解
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍。所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)
的具有很强通用性的项目模板。对于框架的学习,重点是要学习其框架的特性、各个功能的用法即可
二 scrapy框架的安装
Linux: pip3 install scrapy Windows: a. pip3 install wheel b. 下载twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted c. 进入下载目录,执行 pip3 install Twisted‑17.1.0‑cp35‑cp35m‑win_amd64.whl d. pip3 install pywin32 e. pip3 install scrapy
三 基本使用
步骤:
1 创建工程
2 进去第二层目录--创建爬虫应该程序
3 编写爬虫文件
4 修改setting文件
5 执行爬虫
具体:
1 创建工程
scrapy startproject 项目名称
# 例如
scrapy startproject first_project
2 进去第二层目录--创建爬虫应该程序
cd project_name(进入项目目录) scrapy genspider 应用名称 爬取网页的起始url (例如:scrapy genspider qiubai www.qiushibaike.com)
# 例如
cd first_project
scrapy genspider qiubai www.qiushibaike.com
3 编写爬虫文件--在执行完前2步之后,会在项目的spiders中生成一个 应用名(qiubai)的py文件,文件源码如下
import scrapy class QiubaiSpider(scrapy.Spider):
# 应用名称 name = 'qiubai'
# 允许爬取的域名[如果遇见不是该域名下的url则爬取不到] allowed_domains = ['www.qiushibaike.com']
# 起始url start_urls = ['https://www.qiushibaike.com/'] # 访问起始url并获取结果后的回调函数,该函数的response参数就是向起始的url发送请求后,获取的响应对象,该函数返回值必须为可迭代对象或者NULL def parse(self, response): print(response)
4 修改setting文件
# 19行
USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
# 22行 ROBOTSTXT_OBEY = False
5 执行爬虫
scrapy crawl 应用名称
# 例如
scrapy crawl qiubai