jupyter分割代码块_科研分享—Python根据关键词自动抓取Pubmed文献标题(附全部代码)文末有福利...
写在前面:接触Python应该是8月初的一篇公众号文章,大致内容是使用py爬取数据库并汇总到本地。正好手头需要对某个领域的文献进行调研,不妨学习一下。
什么是Python?
百度说:Python (计算机程序设计语言)是一种跨平台的计算机程序设计语言,是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。1991年发行,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
说人话:写代码可以做表情包,录屏,下电影,实现自动化办公。
Python-Anaconda的安装
关于Python的版本和安装有诸多教程,这里转载王树义老师的安装视频,浅显易懂,洋洋盈耳,特别适合像我这样的小白入门:
参考文章链接:https://mp.weixin.qq.com/s/a9P9runYrD6csWTtqFjAoA
安装完成后,打开Jupyter,新建一个python 3任务,开始coding。
Python根据关键词自动抓取文献并保存本地
话不多说,直接上码!
1import requests 2requests.adapters.DEFAULT_RETRIES = 5 # 增加重连次数 3s = requests.session() 4s.keep_alive = False # 关闭多余连接 5url = "https://pubmed.ncbi.nlm.nih.gov/" 6s.get(url) # 网址 7import re 8key=input("请输入检索关键词:")#多个关键词需要使用分号分隔,在输入中需要将分号改为‘%3bmutation’ 9local_url=input("请输入存储文件位置及名称:")10turl="https://pubmed.ncbi.nlm.nih.gov/"11tdata=requests.get(turl,params={"term":key}).text12pat_allpage='(.*?)'13allpage=re.compile(pat_allpage,re.S).findall(tdata)14num=input("获取的文章数目(总数为"+str(int(allpage[0].replace('\n ','').replace(',',''))*10)+"):")15for j in range(0,int(num)//10+1):16 url="https://pubmed.ncbi.nlm.nih.gov/"+"?term="+key+"&page="+str(j+1)17 data=requests.get(url,params={"term":key}).text18 pat1_content_url='
.*?<.>'19 content_url=re.compile(pat1_content_url,re.S).findall(data)20 hd={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400'}21 for i in range(0,len(content_url)):22 curl="https://pubmed.ncbi.nlm.nih.gov/"+content_url[i]23 try:24 cdata=requests.get(curl,headers=hd).text25 pat2_title="(.*?)"26 pat3_content='
(.*?)
'27 pat4_date='(.*?)'28 title=re.compile(pat2_title,re.S).findall(cdata)29 print("已检索题目为:"+title[0])30 content=re.compile(pat3_content,re.S).findall(cdata)31 date=re.compile(pat4_date,re.S).findall(cdata)32 fh=open(local_url+".html","a",encoding="utf-8")33 fh.write(str(title[0])+' ----'+str(date[0])+"
"+"
") #+str(content[0])34 fh.close35 except Exception as err:36 pass37 if int(num) 10:38 if i+1 == int(num):39 break40 elif int(num) == 10:41 if i == 9:42 break43 elif (j*10)+i+1 == int(num):44 break
左右滑动可查看全码,直接复制上面的代码到Jupyter里面按shift+enter运行即可。
我自己用Python录屏演示如下:
代码是如下两篇文章的整合,一并列出:(原代码可以一并爬取标题和摘要,为方便浏览,我把摘要部分代码#掉)1、https://blog.csdn.net/qq_40270119/article/details/106503093
2、https://www.jianshu.com/p/3a5993dd227d
当然还有一个可以将代码包装成小程序的形式使用,有兴趣的可以去试试,链接:https://blog.csdn.net/weixin_43566022/article/details/107124621?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
结语
如果代码报错“XXX MODULE is not found" 或类似,说明某个外置包没有导入,需要打开 Anaconda Powershell用Pip install (+那个module的名字)。示意如下:
下次分享如何根据检索结果做词频展示和共现分析~
—————————————————————————————我是分割线
—————————————————————————————
初学Python,欢迎大家对此次分享留言指正!
点击留言吧
最后,送大家一只涡轮增“鸭”,祝大家在奇迹不要面子的2020年天天开心鸭!
Stay hungry, stay foolish.
致力于分享摄影 / 绘图 / 科研的感悟和技巧。
欢迎关注公众号,接收更多有趣资讯。
jupyter分割代码块_科研分享—Python根据关键词自动抓取Pubmed文献标题(附全部代码)文末有福利...相关推荐
- python编写微信自动抓取文件经历
python编写微信自动抓取文件经历 背景 前期 写代码&坑 背景 近期疫情肆虐,老师全都线上教学,微信群里多出来一大堆乱七八糟的文件,烦死宝宝了,每次还要看,要是doc还得转换成pdf再放进 ...
- python下载电影_Python抓取电影天堂电影信息的代码
Python2.7Mac OS 抓取的是电影天堂里面最新电影的页面.链接地址: http://www.dytt8.net/html/gndy/dyzz/index.html 获取页面的中电影详情页链接 ...
- python如何表示代码块_如何在Python中重复代码块
可以,您只需将代码放入while循环中并提示用户输入:def main_menu(): print ("\n Main Menu ") print ("1.Average ...
- java 静态代码块_关于Java你不知道的那些事之代码块
前言 普通代码块:在方法或语句中出现的{},就被称为代码块 静态代码块:静态代码块有且仅加载一次,也就是在这个类被加载至内存的时候 普通代码块和一般语句执行顺序由他们在代码中出现的次序决定,先出现先执 ...
- python数控机器人_科研一角|Python语言在人工智能加工中心机器人方面的应用
原标题:科研一角|Python语言在人工智能加工中心机器人方面的应用 科研一角|Python语言在人工智能加工中心机器人方面的应用 (一)Python在智能机器人编程技术中的应用 用Python编写的 ...
- java 代码块_详解java中的四种代码块
在java中用{}括起来的称为代码块,代码块可分为以下四种: 一.简介 1.普通代码块: 类中方法的方法体 2.构造代码块: 构造块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行. ...
- python爬取文献代码_爬取Pubmed文献及影响因子并尝试下载的脚本
Abstract 本脚本实现了通过Biopython爬取pubmed文献资料,并通过scholarscope爬取影响因子数据,最后尝试通过sci-hub下载文献,三位一体的方法. Introducti ...
- python爬取百度贴吧中的所有邮箱_使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号...
原标题:使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号 不知道大家过年都是怎么过的,反正栏主是在家睡了一天,醒来的时候登QQ发现有人找我要一份贴吧爬虫的源代码,想起之前练手的时候写过一个抓 ...
- python爬虫代码房-Python爬虫一步步抓取房产信息
原标题:Python爬虫一步步抓取房产信息 前言 嗯,这一篇文章更多是想分享一下我的网页分析方法.玩爬虫也快有一年了,基本代码熟悉之后,我感觉写一个爬虫最有意思的莫过于研究其网页背后的加载过程了,也就 ...
最新文章
- LeetCode 442. Find All Duplicates in an Array
- python 元组捷豹_GitHub - jaguarzls/pyecharts: Python Echarts Plotting Library
- 给硬件工程师介绍SAP Cloud for Customer
- 雷军微博“导购”小米8 SE:名副其实的小屏旗舰!
- db文件 linux查看工具,Linux最大文件句柄数查看及修改
- 运算除法的计算机函数,2、Python基础--除法、常用数学函数(示例代码)
- VMware虚拟机环境下配置centos的固定IP并用xshell连接
- 合并和排序 Linux 上的文件
- Oracle 10g闪回恢复区 (Flash Recovery Area)
- exclips为什么j创建局java出错_clips.BuildRule出错
- 先验概率与后验概率的区别(老迷惑了)
- HDFS文件上传流程
- 利用python编程,制作自己的游戏“外挂”!
- cobalt strik启动
- CAD图纸转换成高质量的PDF文件,两种方法一步搞定哦
- 简单通俗易懂 汽车入门知识图解大集合
- Linux全套完整视频教程
- 神州战神笔记本清灰+换硅脂-记录
- 计算机视觉数据增强方法汇总
- 备受关注的无人便利店代理前景如何?