[爬虫实战]利用python根据样本ID快速收集对应样本的相关信息

1. 问题导向:

        最近,老师给翔哥安派了个活,按老师的要求是需要从NCBI中收集大量SRR样本的信息,由于需要收集的样本数量较多,手动收集的效率比较低下,奈何自己对爬虫又不是很熟,于是就找到了我,让我帮忙给他写个python爬虫来完成这个任务,下面记录整个解决过程,仅供参考。

#所有需要收集的样本SRR号,存放在EXCEL中
SRR3656922
SRR3656924
...
ERR4494323
SRR5630644

2. 爬虫思路

        因为已经有了SRR号,就可以直接在NCBI的搜索页面进行搜索,以样本SRR3656922为例:

搜索界面:https://www.ncbi.nlm.nih.gov/search/all/?term=SRR3656922
样本信息界面:https://www.ncbi.nlm.nih.gov/biosample/SAMN04545548/

通过观察发现我们所需要的数据都储存在二级网页中,需要我们从第一级网页中提取出二级网页所需要的SAM号,再从二级网页中提取出我们所需要的信息

        Lv1_url = "https://www.ncbi.nlm.nih.gov/search/all/?term={}"  # 一级网页基础链接

        Lv2_url = "https://www.ncbi.nlm.nih.gov/biosample/{}/"  # 二级网页基础链接

在二级网页中通过F12调出网页源码,通过元素定位发现我们所需要的信息都储存在<div class="docsum">...</div>元素中,可以直接上手提取

<div class="docsum">
<dl><dt>Identifiers</dt><dd>BioSample: SAMN07135495; Sample name: MT005-019; SRA: SRS2241134</dd></dl>
----
<dl><dt>Organism</dt><dd><a class="replace-link" href="/taxonomy/9913" ref="ncbi_uid=7135495&amp;link_uid=9913">Bos taurus</a> (cattle)<br/><span id="bs_taxonomy">cellular organisms; Eukaryota; Opisthokonta; Metazoa; Eumetazoa; Bilateria; Deuterostomia; Chordata; Craniata; Vertebrata; Gnathostomata; Teleostomi; Euteleostomi; Sarcopterygii; Dipnotetrapodomorpha; Tetrapoda; Amniota; Mammalia; Theria; Eutheria; Boreoeutheria; Laurasiatheria; Artiodactyla; Ruminantia; Pecora; Bovidae; Bovinae; Bos</span></dd></dl>
----
<dl><dt>Package</dt><dd><a href='/biosample/?term="model organism animal 1 0"[filter]'>Model organism or animal; version 1.0</a></dd></dl>
----
<dl><dt>Attributes</dt><dd><table class="docsum"><tr><th>breed</th><td>Muturu </td></tr><tr><th>age</th><td>NA </td></tr><tr><th>sex</th><td>not determined </td></tr><tr><th>tissue</th><td>ear punch_D005 </t
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值