写在前面:接触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文献标题(附全部代码)文末有福利...相关推荐

  1. python编写微信自动抓取文件经历

    python编写微信自动抓取文件经历 背景 前期 写代码&坑 背景 近期疫情肆虐,老师全都线上教学,微信群里多出来一大堆乱七八糟的文件,烦死宝宝了,每次还要看,要是doc还得转换成pdf再放进 ...

  2. python下载电影_Python抓取电影天堂电影信息的代码

    Python2.7Mac OS 抓取的是电影天堂里面最新电影的页面.链接地址: http://www.dytt8.net/html/gndy/dyzz/index.html 获取页面的中电影详情页链接 ...

  3. python如何表示代码块_如何在Python中重复代码块

    可以,您只需将代码放入while循环中并提示用户输入:def main_menu(): print ("\n Main Menu ") print ("1.Average ...

  4. java 静态代码块_关于Java你不知道的那些事之代码块

    前言 普通代码块:在方法或语句中出现的{},就被称为代码块 静态代码块:静态代码块有且仅加载一次,也就是在这个类被加载至内存的时候 普通代码块和一般语句执行顺序由他们在代码中出现的次序决定,先出现先执 ...

  5. python数控机器人_科研一角|Python语言在人工智能加工中心机器人方面的应用

    原标题:科研一角|Python语言在人工智能加工中心机器人方面的应用 科研一角|Python语言在人工智能加工中心机器人方面的应用 (一)Python在智能机器人编程技术中的应用 用Python编写的 ...

  6. java 代码块_详解java中的四种代码块

    在java中用{}括起来的称为代码块,代码块可分为以下四种: 一.简介 1.普通代码块: 类中方法的方法体 2.构造代码块: 构造块会在创建对象时被调用,每次创建时都会被调用,优先于类构造函数执行. ...

  7. python爬取文献代码_爬取Pubmed文献及影响因子并尝试下载的脚本

    Abstract 本脚本实现了通过Biopython爬取pubmed文献资料,并通过scholarscope爬取影响因子数据,最后尝试通过sci-hub下载文献,三位一体的方法. Introducti ...

  8. python爬取百度贴吧中的所有邮箱_使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号...

    原标题:使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号 不知道大家过年都是怎么过的,反正栏主是在家睡了一天,醒来的时候登QQ发现有人找我要一份贴吧爬虫的源代码,想起之前练手的时候写过一个抓 ...

  9. python爬虫代码房-Python爬虫一步步抓取房产信息

    原标题:Python爬虫一步步抓取房产信息 前言 嗯,这一篇文章更多是想分享一下我的网页分析方法.玩爬虫也快有一年了,基本代码熟悉之后,我感觉写一个爬虫最有意思的莫过于研究其网页背后的加载过程了,也就 ...

最新文章

  1. LeetCode 442. Find All Duplicates in an Array
  2. python 元组捷豹_GitHub - jaguarzls/pyecharts: Python Echarts Plotting Library
  3. 给硬件工程师介绍SAP Cloud for Customer
  4. 雷军微博“导购”小米8 SE:名副其实的小屏旗舰!
  5. db文件 linux查看工具,Linux最大文件句柄数查看及修改
  6. 运算除法的计算机函数,2、Python基础--除法、常用数学函数(示例代码)
  7. VMware虚拟机环境下配置centos的固定IP并用xshell连接
  8. 合并和排序 Linux 上的文件
  9. Oracle 10g闪回恢复区 (Flash Recovery Area)
  10. exclips为什么j创建局java出错_clips.BuildRule出错
  11. 先验概率与后验概率的区别(老迷惑了)
  12. HDFS文件上传流程
  13. 利用python编程,制作自己的游戏“外挂”!
  14. cobalt strik启动
  15. CAD图纸转换成高质量的PDF文件,两种方法一步搞定哦
  16. 简单通俗易懂 汽车入门知识图解大集合
  17. Linux全套完整视频教程
  18. 神州战神笔记本清灰+换硅脂-记录
  19. 计算机视觉数据增强方法汇总
  20. 备受关注的无人便利店代理前景如何?

热门文章

  1. FhqTreap的区间翻转
  2. thymeleaf+layui 展示table 报500
  3. 【codeforces 812C】Sagheer and Nubian Market
  4. Android WiFi开发教程(三)——WiFi热点数据传输
  5. viewport使用 html5
  6. unity3d游戏开发猜想——当程序猿老去
  7. MyEclipse安装Freemarker插件
  8. linux跨主机复制文件
  9. GTONE清理维护建议方案
  10. UML for Java Programmers之dx实战