查看原文
其他

用python爬取一个网站的所有生物信息学习资料,附代码

2017-01-20 天地本无心 生信媛

我们在万维网上看到的任何一个文件,(文档,视频,音频)都有一个唯一的url地址。爬虫最基本的原理,就是收集这些url地址然后下载。今天我们会通过一段python代码,就能够直接爬取一个网站的所有关于生信的资料。也希望对大家能够有所启发,让大家能够在自己的生活当中更多地使用python来解决实际问题。如果大家能够把这段代码实际敲一遍的话,肯定能够入门python爬虫。

明天就要回家,今天还要熬夜赶合作者的分析报告,但是答应了姊如同学的每周写一篇公众号又不能轻易违背,所以翻出了我以前写的一个python脚本来作为本周的推送内容(求原谅)。

上次看南派Y叔的推送,提到用markdown here的插件来排版公众号,然后一键渲染,在今天的推送当中,测试一下。发现针对长代码的支持比较差,无端让换行消失,python作为一门对缩进要求严格的语言,这样的脚本放上去之后,大家copy下来,发现运行不了,会骂我的,所以我果断放弃之。

为什么我们需要用爬虫?

比如说你看到了一个网页类似于这样,你觉得每个文件都有用,但是如果一个一个点击保存,你会需要成百上千次的点击,这时候就可以考虑使用爬虫了。

什么时候不方便使用爬虫?

不要轻易用爬虫去爬会封你IP的网站,比如说NCBI,不要问我怎么知道的。

好,还要抓紧时间干活,就不多说了,直接放代码。

这个代码写的挺短,不难,但是其中有一个对新手可能会比较觉得tricky的点在于,它能够通过递归调用函数的方式,将这个文件目录的子文件夹,子文件的子文件夹里的文件,全部下载到。运行完毕之后,会在你的运行脚本的位置,生成一个bioinformatics的文件夹,里面就是网站上的全部学习资料。

运行这个脚本,需要你自己的电脑上长了python2.7, 如果是python3的话,要么你自己修改下脚本,要么用conda或者vitualEnv之类的工具构建一个python2.7的环境。

不想一个一个敲,也行,在这里能够找到我的原始代码,copy下来使用就行。

知乎address:  https://zhuanlan.zhihu.com/p/24439922?refer=pybio

最后: 特别感谢南派Y叔,领导姊如。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存