网络爬虫(web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人。其目的一般为编纂网络索引。各大搜索引擎都可以被看做爬虫,根据爬取的内容更新自身的网站内容或其对其他网站的索引。一般如果想批量从网页获取数据,有download或者API(之前推送过使用API提取TCGA数据)页面最好,没有的话可以考虑使用爬虫爬取。
本期使用R语言批量爬取NCBI基因注释信息,主要用到了XML包的getNodeSet函数。需要使用者有一定html+css基础,以及理解并能使用XML路径语言(xpath)。
使用R爬取NCBI人类基因信息流程如下:
首先准备目标基因文件,我们以下面这几个基因(gene symbol的形式)为例进行爬取其在NCBI(gene)中的信息,基因列表文件可以从这里下载(https://pan.baidu.com/s/1c2jbvby)。
gene list文件
载入要用到的包并读入基因列表:
library(RCurl)
library(stringr)
library(XML)
library(clusterProfiler)
rm(list=ls())
# 读入基因列表:
genes
从下图可以发现NCBI对于基因页面的索引方式都是 https://www.ncbi.nlm.nih.gov/gene/Entrze ID 的方式。
NCBI中基因页面
所以我们需要将gene symbos转为entrze ID,这里使用clust