Scrapy框架的使用笔记

该篇笔记是使用Scrapy的过程中的一个大杂烩,没有细致分章节,所有的开发过程中遇到的心得、总结和问题都融合到一起了。待以后有了更为深入的理解后,闲时细分。

Scrapy环境的安装

我是在CentOS7.X下安装Scrapy的。其中Python的环境是通过Conda配置的。Scrapy本身是支持Conda的安装方式的,参考:https://anaconda.org/conda-forge/scrapy
如果要安装任意版本,可以在后面指定版本号即可,conda-forge参数是conda的一个开源社区。如下:

conda install -c conda-forge scrapy=1.5.1

Scrapy框架的开发流程

  • 1 首先使用Scrapy Shell 测试目标网站;
  • 2 创建项目scrapy startproject projectname
  • 3 创建爬虫scrapy genspider weatherspider www.tianqi.com,其中第三个参数是爬虫的名称,最后一个参数是要爬取的网站的域名,可以后来在程序中修改;
  • 4 构建数据模型,修改items.py文件,该文件主要是指定要爬取的数据的字段;
  • 5 定义爬取方式,修改spider/weatherspider.py文件,主要是指定了要爬取的网站的地址;如何解析数据源,一般使用Scrapy的Selector的Xpath方法;数据返回;
  • 6 保存爬取的结果。在pipelines.py文件中实现结果保存在何处,如可以以JSON格式将半结构化数据保存在本地,或者保存结构化的数据到关系型数据库中。
  • 7 配置项目的参数。在settings.py文件中,可以指定结果的分配方式;
  • 8 运行爬虫。在项目层,运行指令scrapy crawl weather,即可;

Setting.py的详细介绍

  • BOT_NAME: 爬虫项目的名称;

在Scrapy使用的过程中遇到的坑

  • 1 start_urls必须是中括号包住的列表;
  • 2 如果使用pycharm作为开发的IDE的话,每一个爬虫项目必须在单独的新的环境中开发,否则的话有些自建的模块不能够被引用;
  • 3 为了提高程序的运行速度,在测试的时候,需要把settings.py中的ROBOTSTXT_OBEY = True,将其更改为False,否则,爬虫会先去下载robots文件,有一些网站不规范的,压根没有这个文件,所以会很耗时。robots.txt 是遵循 Robot协议 的一个文件,它保存在网站的服务器中,它的作用是,告诉搜索引擎爬虫,本网站哪些目录下的网页 不希望 你进行爬取收录。在Scrapy启动后,会在第一时间访问网站的 robots.txt 文件,然后决定该网站的爬取范围。
  • 未完待续……

你可能感兴趣的:(Scrapy框架的使用笔记)