您的位置:首页 > 编程语言 > Python开发

磕盐党的福利——python进行文献检索

2021-01-02 16:53 267 查看

小编上个月说在准备硕士论文开题工作,结果到了前两天才开题答辩结束。。。。所以推文更新较少(手动甩锅)
       这里先祝愿所有考研的同学,金榜题名,顺利走上磕盐的道路。

说起这个磕盐以及我前段时间的开题工作,其实都少不了阅读文献。但是文献的检索、阅读、总结、归纳都是很繁琐的工作,所以有什么骚操作可以带来一些方便吗?且听这回分解。

在之前的推文中介绍过一本书籍,《鲜活的数据》。

其中的第2章——处理数据,里面有讲到从网站上搜集天气数据的例子,可以借鉴这个过程,利用python进行文献检索。


典型的自动搜集数据包括三个步骤:

找出规律

进行循环

存储数据


下面小编也将从这三个方面来示范如何使用python进行文献检索


首先,打开百度学术网页,在搜索栏里填写文献关键词


点击百度一下,界面就会跳到搜索到的文献页面,翻页以观察每一页网页的URL。


通过来回翻页并观察,发现了规律,上面图片中标红的地方就是不同页面的差别,根据总共的页面数量,可以写一个循环来实现爬取。

首先是导入各种库:


根据上面找到的url规律,编写一个循环实现访问网页。


小编使用的是火狐浏览器,所以在百度学术搜索出来的界面右键点击查看元素,就可以查看网页各部分的html标签。


上图中蓝色框选中的部分所对应的HTML标签在下图中有所对应:


可以点击图标 查看详情:



比如年份的HTML标签如下:


以上代码获取了每篇文献的URL以及年份,在每篇文献的详情页把题目、摘要、作者、期刊等部分的HTML标签都要搞清楚。


那么如何从这些HTML中提取出文献的相关内容呢?这里只介绍本篇推文用到的相关知识,详细信息还请查阅:https://beautifulsoup.readthedocs.io/zh_CN/latest/

BeautifulSoup

下面先引出BeautifulSoup的基本概念:


BeautifulSoup是Python的一个库,其主要功能是抓取网页的数据,解析HTML文档。


HTML是一个树形组织结构,由很多标签(Tag)组成,一个标签对构成一个节点。每一个tag都对应HTML的标签,标签还可以有属性,属性的访问方式和字典是类似的,它返回一个列表对象。


BeautifulSoup对象表示的是一个文档的全部内容,可以定位到HTML中的任何一个标签节点。它支持 遍历文档树和 搜索文档树 中描述的大部分的方法。


搜索文档树


搜索文档树是指通过指定标签名来搜索元素,还可以通过指定标签的属性值来精确定位节点元素。最常用的方法是find和find_all。


其中find_all( name , attrs , recursive , string , **kwargs )


find_all()
方法搜索当前tag的所有tag子节点,并判断是否符合过滤器的条件,返回结果是包含一个
tag
的列表。

find()方法返回单个tag对象而不是列表,如果匹配多个tag,只返回第0个。



通过搜索文档树的方法定位到文献标题、作者、摘要的HTML标签,并获取其内容,最终输出到Excel表格。

查询到的部分文献如下图所示:

(密集恐惧症者慎看下图)



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: