论文季,Python带你起个飞

【AD】如何提升大数据行业影响力?给数据分析网[投稿],辐射50万大数据爱好者!

毕业季到了,相信还有不少同学奋战在论文一线。作为过来人,笔者怀着学以致用的目的和回馈社会的决心,终于是写出了这篇《论文季,Python带你起个飞》之(一)……

写过论文或者正在写论文的人都知道,文献综述是论文的重要组成部分,也是导师审查的重点之一,要完成好这一部分的写作,免不了阅读大量文献,通常还会要求中英文献都要有,而且尽量参考权威期刊同时避免参考学位论文。下载文献的时候,在知网上点点点,选选选,翻翻翻,是不是还挺麻烦的?笔者在这里分享给大家一个相对轻松的方法。

在校时,有很多免费的学术资源供大家使用,但随着毕业,这些资源基本都得花钱啦(在校生们要好好珍惜这些资源)。没有免费资源怎么办呢?笔者在这里推荐百度学术,因为这里的外文文献相对还是比较多的。

那么,我们现在开始示范如何利用python批量下载文献。

配置:Python 3.6+Chrome

获取搜索结果页信息

打开百度学术(xueshu.baidu.com),输入关键词。

笔者这次主要是想阅读神经网络之父Geoffrey Hinton的论文,所以直接搜索关键词Geoffrey Hinton,在搜索结果页面右键选择检查,就可以查看到页面各部分的HTML标签。

论文季,Python带你起个飞

找到每一个想要爬取的信息的HTML标签,就可以开始写爬虫了。

先导入需要用到的包,如果你是直接安装的anconda,那你只需要单独再安装一下bs4,打开终端使用安装命令:pip install beautifulsoup4即可安装。若只单独安装了python3.6,那么同样通过pip的方式安装pandas。re、os、requests、collections都是python的内置模块。

论文季,Python带你起个飞

接着,创建一个名为paper的namedtuple,包含三个属性:title用来存放论文标题,author用来存放作者,abstract用来存放论文摘要

paper=namedtuple(‘paper’,[‘title’,’author’,’abstract’])

爬取论文主要用到BeautifulSoup中的find_all方法。find_all方法接收的参数实际是筛选条件。如find_all(‘div’,{‘class’:’abstract’})意味着寻找标签为div并且满足class标签等于‘abstract’的内容。返回的结果可能有多个,选取想要的结果的索引,然后用text属性获取其文本内容。

通常搜索结果会有多页,这里介绍两种方法来实现自动爬取多页结果:

  • 在搜索结果页来回翻几页,观察网页url的变化,找到规律,写循环,直接访问各页面。

笔者找到的规律是:地址中有一个参数表示了第几页。于是根据你想爬取的页面数量,写一个简单的循环就可以实现。

论文季,Python带你起个飞

  • 通过审查页面上“下一页”的审查元素,获取其链向的地址,在爬取完当前页面内容后,继续爬取下一页。(这里不提供代码,有兴趣的读者可以自己实践,很简单)

对代码进行简单修改可以实现对爬取文献数量的精确控制。

获取文献详情页信息

上一步获取的url是每一篇文献的详情页,我们现在要在详情页获取文献标题,作者,摘要,以及免费下载地址。再把以上信息都放到一个DataFrame里面,便于管理。

论文季,Python带你起个飞

免费下载地址中,有时会存在无法访问的情况,为了能够成功下载到文献,这段代码会获取文献详情页的所有免费下载地址。

如此,一个管理文献库的DataFrame的基本结构就做好了,由于存在重复的情况,需要按论文标题去一下重。最终得到去重后的DataFrame长这个样子:

论文季,Python带你起个飞

下载文献到本地

现在可以利用下面这段代码开始自动下载文献到本地啦:

新建一个专门存放文献的文件夹 在python里直接用os里面的mkdir就可以:

如:os.mkdir(‘E://文献’)

论文季,Python带你起个飞

打印出来的内容告诉我们有些链接确实下载不了,于是尝试其他链接,文献成功下载。打开文件夹,你就能看到文献啦!

论文季,Python带你起个飞

文献管理表分析

至此,我们其实可以针对这张管理表做一个简单的分析。

比如,文献库里,都包含了哪些年份的文献,各年份有多少篇文献。

论文季,Python带你起个飞

简单利用文献标题做一个词云图,看一下Hinton都在研究些什么主题。

(深度,神经网络,玻尔兹曼机,信念网络…)

论文季,Python带你起个飞

在笔者所下载的这35篇文献中,Hinton一共和37位作者合作过,其中与

Roland Memisevic (蒙特利尔大学MILA机器学习机构计算机科学的教授)

Ilya Sutskever (openAI实验室的联合创始人) 都合作过3次,与大部分学者都只合作了一次。

论文季,Python带你起个飞

此外,你还可以做很多有趣的分析,自己动手尝试尝试吧!

读完本文,你应该可以动手尝试下载相关主题的文献。后续,我们还将示范如何提取pdf中的文献内容,并进行分析和总结,进一步帮助大家写论文!

本站特约专栏文章,作者:KPMG大数据挖掘,本文链接:https://www.afenxi.com/52346.html 。内容观点不代表本站立场,如若转载请联系专栏作者。

联系我们

如有建议:>>给我留言

大数据交流群

统  计  学 数据分析网-统计学

商业智能 数据分析网-商业智能

数据挖掘 数据分析-数据挖掘

数据产品 数据分析网-数据产品

QR code