科研领域把握-小白也可以使用Python爬Nature

作者:赵向阳 南京农业大学

责编:文涛 南京农业大学

文末提供爬虫代码,直接复制即可运行,或再github中下载源代码,地址在评论区置顶(今晚由于上传意外,exe程序在19年12月29日中午十二点之后在评论区置顶)。我们已经爬过微生物领域的多个期刊,敬请期待升级版本的exe程序,同时如果感兴趣的朋友可以留言:需要爬取的内容,或者期刊,之后我们会逐步升级到程序中。

大家可以扫此二维码加入讨论群中,并提出自己的建议

写在前面

在研究过程中,尤其是在接触一个新的领域时,需要把握整个领域的整体发展,爬虫相关期刊是一个很好的方式,当然这需要一定的爬虫技术。

  • python爬虫是比较受欢迎的方式,我们的赵向阳在这方面很有经验,本次赵向阳通过关键词爬取Nature官网,作为演示,我们简单收集了文章的题目,DOI,作者,引用等信息,并输出文档。

  • 为了让只要可以使用电脑的人都可以享受爬虫的方便之处,赵向阳也将该程序封装了.exe。请注意!就是大家直接双击就可以运行的爬虫。

.exe 使用指南

首先从评论区提供的github地址下载Nature文件夹

第一步:打开nature文件夹,并在其中找到exe结尾的文件

第二步:双击运行exe文件:

运行结束会提示:本次我使用microbiome作为关键词,并下载前两页内容:

完成之后会在当前文件夹中生成一个data.csv的文件。打开就是我们需要的信息

代码

下面示例代码选用了microbiome的关键词,在nature官网搜索,并下载搜索内容前17页内容

import requests
import json
from lxml import etree
import time

#获取网页相应内容
def get_one_page(url):
try:

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.text
return None
except:
print("访问出错")
return None
def parse_one_page(html):
html = etree.HTML(html)
title = html.xpath('//*[@id="content"]/div/div/article/div[1]/div[1]/header/h1/text()')
Accesses = html.xpath('//*[@id="content"]/div/div/article/div[1]/div[1]/header/div/ul/li/p/text()')
DOI = html.xpath('//*[@id="article-info-content"]/div/div[2]/ul/li[4]/p/a/text()')
Published = html.xpath('//*[@id="content"]/div/div/article/div[1]/div[1]/header/ul[1]/li[3]/a/time/text()')
qikan = html.xpath('//*[@id="content"]/div/div/article/div[1]/div[1]/header/p/a[1]/i/text()')
author = html.xpath('//*[@id="content"]/div/div/article/div[1]/div[1]/header/ul[2]//text()')
Article_number = html.xpath('//*[@id="content"]/div/div/article/div[1]/div[1]/header/p/span[1]/text()')
print(title)

yield{
'title' : title,
'Accesses': Accesses,
'Published': Published,
'qikan': qikan,
'author': author,
'Article_number': Article_number,
'DOI': DOI
}

def get_paper_url(search, n):

url = 'https://www.nature.com/search?q=%s' % (search) + '&page=%d' % (n)
html = get_one_page(url)
html = etree.HTML(html)
href = html.xpath('//div/h2/a/@href')
for i in href:
url = 'https://www.nature.com'+str(i)
html = get_one_page(url)
for item in parse_one_page(html):
with open('data.txt', 'a', encoding='utf-8') as f:
f.write(json.dumps(item['title'], ensure_ascii=False))
f.write(json.dumps(item['DOI'], ensure_ascii=False))
f.write(json.dumps(item['qikan'], ensure_ascii=False))
f.write(json.dumps(item['Accesses'], ensure_ascii=False))
f.write(json.dumps(item['Published '], ensure_ascii=False))
f.write(json.dumps(item['Article_number'], ensure_ascii=False))
f.write(json.dumps(item['author'], ensure_ascii=False) + '\n')
time.sleep(2)
def main():
#搜索页数
search = "microbiome"
for i in range(1, 17):
try:

get_paper_url(search, i)

print('第%d页完成' %(i))

except:
print("出错")
print("第%d页出错" % (i))
continue

if __name__ == '__main__':
main()

(0)

相关推荐

  • z-index属性详解

    目录 z-index属性详解 一.定义和用法 二.代码 三.效果图 一.定义和用法 z-index属性指定一个元素的堆叠顺序,也就是z轴 position属性定义的是x轴和y轴 z-index属性必须 ...

  • 章节十、7-Xpath---Xpath中绝对路径相对路径的区别

    以下演示操作以该网址中的内容为例:https://learn.letskodeit.com/?_ga=2.143454972.85111248.1555037144-697706367.1554889 ...

  • 一起学爬虫(Python) — 06

    一起学爬虫(Python) - 19 年轻人,进来学自动化 今天我们要停下来 回顾 xpath 什么是xpath 查帕斯的原理 案例 举一反三 回顾 鲁迅先生曾说过,学习要脚踏实地,要会举一反三!昨晚 ...

  • 用Python爬取东方财富网上市公司财务报表

    摘要: 现在很多网页都采取JavaScript进行动态渲染,其中包括Ajax技术.有的网页虽然也用Ajax技术,但接口参数可能是加密的无法直接获得,比如淘宝:有的动态网页也采用JavaScript,但 ...

  • 陈学智:基层医生在科研领域大有可为

    陈学智:基层医生在科研领域大有可为

  • 用地图“画”出科研领域新变化

    来源:<中国科学报>2021-05-11 09:23   近日,中国科学院科技战略咨询研究院(以下简称战略咨询院)发布了<科学结构图谱2021>.基于2012年至2017年10 ...

  • Python爬取某平台短视频,把你喜欢的视频下收藏起来

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 基本开发环境 Python 3.6 Pycharm 相关模块的使用 import osimp ...

  • 用 Python 爬取各类基金数据并动态展示

    以下文章来源于Python爬虫数据分析挖掘 ,作者李运辰 Python爬虫数据分析挖掘 四年的编程开发爱好者,分享日常编程学习和接私活过程,记录生活,共同进步.关注小白,编程快乐 01 前言 去年接触 ...

  • 小白适合做自媒体哪个领域?小白如何选择领域?

    一.影视剪辑 受众是非常大的,平时我们休闲时间都愿意追个剧或是电影.它分2种创作形式:影视片段混剪和电影解说.这种的话就是二次创作,原创度会比较高,也是现在平台支持的形式. 但影视剪辑最容易遇到的问题 ...

  • Python爬取视频网站弹幕,并做成词云图

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 作者:张同学 来源:凹凸数据 Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 ht ...

  • Python爬取网易云音乐辑的图片、专辑名和专辑出版时间

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 作者:阿里波特 来源:CSDN Python爬虫.数据分析.网站开发等案例教程视频免费在线观看 h ...

  • 现阶段智慧社区与人脸识别技术 AI智能科研领域发展方向

    人脸识别简单的解释就是给出两张脸,系统搜索确定是否是同一个人,这就是它最初的定义.它有银行柜台.海关.酒店入住.网吧认证等多种应用场景,检查你的身份证是否和你是同一个人.   目前,人脸识别技术已经得 ...