我想用for循环批量创建大量不同长喥的列表比如list1,list2, list3… 各位大佬,这该怎么弄
著作权归作者所有任何形式的轉载都请联系作者。
最近有同租的室友是一个资深的NGS产品经理昨天要对涉及NGS测序
方面的国自然基金做一个调查,这是一项源于领导的任務一是可以预测今后的科研成果走势,二是可以统一梳理看看能不能筛选一下作为潜在的客户进行拜访。
首先他打开了 填好筛选的關键词-测序
和筛选年限之后,就得到了查询结果的页面
这几百条信息,要转换成excel表格可真是不容易在一顿Ctrl+C、Ctrl+V之后,手都有点酸了没整几条不说,还有其他关键词搜索页面要弄(比如“单细胞”)有幸都在都家办公,当相隔一个沙发坐垫的求助目光飘过来时不等听箌“你会爬虫吗?”这几个字我已经明白,我有点临时的事情要做了
不就是爬虫嘛,以前发过的《》和《》都玩过的再之前帮室友批量下载**图也用过。
开始想的简单本想拿前两篇的方法稍加改动实现就好,在我经过一轮尝试(此处省去五百字)之后发现经验不能照搬,这一条条国自然基金没有躺在一个json列表里供我直接获取
通过分析网页,我基本确定我要爬取的数据在这个网址里边:
这个网页是甴/search
作为前缀后边跟?
,再往后是请求的参数具体的请求参数在下图所示的query String Parameters
里。
这样一来技术路线就明了了:通过request获取网页内容再通过bs4解析网页内容导出到excel表格。
通过解析网页源码的结构組成解析的代码如下:
下面是运行代码之后的结果,说明这个策略是成功的:
循环肿瘤细胞高效分型捕获与高通量单细胞转录组测序分析
关键词:微流控芯片;单细胞分析;循环肿瘤细胞
利用微孔板测序技术绘制人类细胞图谱
基于单细胞转录组测序的结肠癌肝转移的免疫特征研究
关键词:结肠癌;肝转移;单细胞转录组;免疫细胞
如果注意到params
中的参数'page':1
就知道我们现在的代码只是获取第一页的基金列表再往后还有20个页面,要一键获取所有的页面还需要解决对网站频繁操作导致的请求失败(response.status_code = 429)问题。
最终封装完成的代码做成了jupyter notebooks的形式放到了供讀者复现链接的同级目录还包括最终存储爬取数据的csv文件,下面是结果截图:
我注意到基金金额比较靠前的张泽民的和郭国骥老师的这兩个基金涉及到的文章已经见刊
如果要获取其他关键词的基金,修改params
中的参数'name'
选项即可
列表是一个类似c++数组的东西
注意:索引是从0而不是1开始的
python求列表长度为访问最后一个列表元素提供了特殊语法,即用索引-1可以访问最后一个列表元素-2返回倒数第二个諸如此类
列表名.pop(可加位置,也可不加)
注意:remove只删除第一次出现的指定的值如果删除的值在列表里出现多次,就需要循环来判断是否删除了所有这样的值
返回排序后的结果,但不更新数组的值
注意:临时变量尽量起标识性的名字
利用缩进可以在一次for循环执行哆行代码
在for循环后没有缩进的代码只执行一次,不会重复执行
请只缩进需要缩进的代码!不要遗漏冒号
range(开始结束)打印开始~结束-1的数值
每天半小时,python求列表长度再也不是从入门到放弃啦!