scrapy 框架初识
安装
如果没记错,python 3.6 及以上版本可以直接用 pip install scrapy.
但具体是从哪个版本开始可以这样我也不是很清楚,因为我使用的 python 3.95,所以我是直接用pip
安装的。也正因为如此,对于下载whl格式的包安装我是不太清楚的,所以不提。
认识
scrapy 安装成功后,我们来创建项目框架。
打开终端。cmd 或者从 pycharm 中打开终端。我以 pycharm 为例。
首先,进入到相应的目录
创建项目框架文件夹
scrapy startproject projectName
在进入刚创建的文件夹,创建新的执行文件
scrapy genspider fileName www.xxxx.com
然后我们打开我们创建的项目框架
其中 Blood.py
是主代码文件,items.py
是跟保存有关的文件,middlewares.py
是中间件,pipelines.py
是管道文件,settings.py
是配置文件。这些以后会讲到的,暂且不提。
如果要执行代码,终端的命令是scrapy crawl fileName
在这个案例里,就是scrapy crawl Blood
简单的代码实现
先打开 Blood.py
文件
其中代码如下:
我圈起来的部分是允许爬虫爬取的网站的域名,而下面的列表是待爬取的网址。这就是说,如果待爬取的网址不属于我圈起来的域名,这些网址就不会被爬取。所以一般来说,我们直接是将这一行代码注释掉。
然后我们试着爬取百度首页。
首先代码如下:
import scrapy
class BloodSpider(scrapy.Spider):
name = 'Blood'
# allowed_domains = ['www.xxx.com']
start_urls = ['http://www.baidu.com/']
def parse(self, response):
print(response.url) # 打印爬取的网址
pass
执行代码scrapy crawl Blood
运行结果:
好家伙,这一坨是什么东西?
先来看我圈起来的部分,先是说连接到百度首页,再说被 robots 协议禁止了。好家伙,原来这是日志啊,但是 robots 协议怎么办?
没事,是时候打开我们的配置文件了
这里我们看到,我们的 scrapy 框架遵守 robots 协议,所以我们将 True 改成 False。再运行一次,🆗,这次没有报错了。
但是这一坨日志可真是叫人恶心。那有什么方法吗?
简单,再次打开而配置文件。
添加一行代码
LOG_LEVEL = "ERROR"
然后再次运行
看结果:
那么使用 scrapy 框架之后怎么保存爬取的内容呢?
嘿嘿,且听下回分解。