欢迎关注”生信修炼手册”!
框架是为了解决特定的业务场景而开发的一套高质量代码,通过框架避免了重复造轮子的低效模式,可以更加专注于具体业务相关的代码。在python中,scrapy就是一个主流的爬虫框架,可以通过如下方式进行安装
scrapy框架的架构如下
核心是Scrapy引擎,其他各部分的功能如下
1. Spiders,主要有两个功能,提供需要解析的url链接,即Requests, 同时负责解析html页面,从其中提取需要的信息,提取出来的标准化信息称之为Item;
2. Scheduler,称之为调度器,负责对多个Requests任务进行调度
3. Downloader Middlewares, 下载中间件,可以对Requests请求进行封装,典型的应用是添加User-Agent信息,
4. Downloader,负责下载,下载对应的Requests,从服务器获取响应信息,即Responses
5. Item PIpeline,Spiders将提取出标准的Item信息,交给Item PIpeline进行处理,比如去重复等操作
下面通过一个小的实例来看下该框架的使用,通过如下代码可以新建一个爬虫项目
在hello_world目录下,包含了如下以及文件
其中的setting.py 文件保存了爬虫相关的设置信息,最常见的用法是对以下选项进行设置
这样爬虫就可以无视网站的roborts.txt文件,继续爬取。项目启动之后,我们首先要做的就是在spiders目录下,新建一个文件,编写我们的爬虫代码,文件的名字自己定义,内容示例如下
在该代码中,start_urls提供了需要爬取的页面,parse方法提供了从网页中提取信息的具体方式,对于提取信息的标准化,在items.py文件中进行定义,示例如下
通过以上两个文件的简单代码,就定义了一个最基本的爬虫,功能是从miRTarBase数据库中提取human miRNA的靶基因信息。在命令行中输入以下命令,可以启动该爬虫
直接将结果输出为标准的csv格式,由于采用了异步io的下载模式,爬取速度非常的快。
通过这个简单的示例,可以看出框架对于开发的便利性,我们只需要专注于编写从网页提取信息的核心代码就可以了,大大提高了开发效率,而且由于框架本身的优越性能,开发出的爬虫执行效率也很高。
·end·
—如果喜欢,快分享给你的朋友们吧—
原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!
本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。
领取专属 10元无门槛券
私享最新 技术干货