业务需要用到scrapy去抓数据,所以新挖个坑,准备好好学一波scrapy,也给后人先踩个坑。
玩转Python-Scrapy系列:
玩转Python-Scrapy(一):初探scrapy
玩转Python-Scrapy(二):元素选取之CSS选择器与XPATH表达式
概念
爬虫
爬虫,简而言之,就是在网络上按照爬虫编写者的目的,去进行某些数据的抓取工作的一种程序。
之所以要用到爬虫,意图很明显,我们有希望从网上获取的一些数据,比如科学研究者往往需要获得一些实验数据,比如想研究舆论,可能得去新浪微博上抓去人们对于某个话题的评论信息。而如果人工去一个个地复制粘贴,难免耗时耗力,很难短时间内获得大量数据。于是,爬虫就应运而生,作为以高速运转为特点计算机程序,它可以非常高效率地去获取你指定的信息。
当然其实很多数据已经被人收集过了,往往各个领域或者行业会有一些比较知名的收费或免费数据库提供给公众,大家有需求的就可以去数据库下载数据。比如一般的国家统计局年鉴,金融领域的国泰安数据库,wind等。所以大家看到想要的数据,也别马上就心急火燎地想要自己写个爬虫出来,说不定早有人收集过了,你去download一下就ok了。毕竟最终目的,是为了高效地获取想要的数据嘛。
scrapy
scrapy,是用纯python实现的一个爬虫框架。
它的实现,主要依赖于以下几个已有的python库:
- lxml::一个非常有效的XML与HTML文档转换工具
- parsel: 基于lxml的XML与HTML提取工具
- w3lib,:一个处理URL链接与网页编码的多功能小助手
- twisted:一个异步网络框架
- cryptography and pyOpenSSL:解决网络级别的各类安全问题
安装
两种主流方式:首先保证已经安装了python并配置好了环境变量的情况下,可以直接使用pip安装:
pip install scrapy
如果你还已经安装了python的Anaconda或者Miniconda,也可以用conda命令安装:
conda install -c conda-forge scrapy
使用入门
参照官方的tutorial,完成一个简单scrapy项目的构建与启动。
总结下来,用scrapy去爬取数据的过程大致如下:
- Creating a new Scrapy project (创建一个新scrapy项目)
- Writing a spider to crawl a site and extract data (项目的spiders目录下写一个spider类,选择爬取的网站并提取数据)
- Exporting the scraped data using the command line (用scrapy的命令行工具导出爬取到的数据)
完成官方的tutorial,基本上就会对scrapy的基本使用流程有了一个基本的感觉了,下面我们就来分别细致地探讨一下scrapy的技术细节。
在PyCharm中运行scrapy项目
请参考这篇博客用Pycharm打开Scrapy项目
有些同学可能对命令行环境比较陌生,感觉不太友好,那么我们其实也可以使用python的IDE Pycharm来进行scrapy项目的构建与运行。
参考
[1] scrapy官网: https://doc.scrapy.org/en/latest/intro/install.html#installing-scrapy