快速获取Scopus数据库文献信息(大于2万条)的方法

问题:针对某一检索式,scopus数据库导出csv的数据情况为:前2000条数据可以按照勾选的字段导出;前20000条数据只能给出引文信息,且通过邮箱发送。
输入检索式,笔者现在需要17万多文献数据,且所需的信息不只是引文信息,包含以下字段(涉及引文信息、题录信息、摘要和关键字),如下图。
在这里插入图片描述
采取的方法为:
第一步:按照年份进行精简,因为每年的数据都小于2万条,所以每次均可完整地通过邮箱的方式获取到只有引文信息的文献;
第二步,根据引文信息中的链接对每篇文章的摘要、索引关键字、作者关键字等字段进行爬虫,code如下。

# -*- coding: utf-8 -*-
#  爬取scopus的详细信息

import importlib,sys
importlib.reload(sys)
import requests
from lxml import etree
import time

#------将结果写入文件--------
import csv
res = open("content_2014.csv","a",encoding='utf-8',newline='')
writer = csv.writer(res)
user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"
headers = {"User-Agent": user_agent,"Connection": "close"}  # 请求头,headers是一个字典类型
#--------------------第一步:读取数据----------------------------
word = []
f = open("/Users/sunmengge/Desktop/scorpus/scopus_2014.csv", encoding='utf-8')
lines = f.readlines()
for i in range(1,len(lines)):
    print(i)
    content = []
    url = lines[i].split(",")[-7]
    print(url)
    content.append(url)
    # --------------------第二步:获取每一网页数据----------------------------
    while 1:
        try:
            print("start")
            html = requests.get(url, headers=headers).text
            break
        except:
            print("connection refused by the server..")
            print("let me sleep for 5seconds")
            time.sleep(5)
            print("it is a nice sleep,now let me continue")
            continue
    # --------------------第三步:解析每一网页数据----------------------------
    selector = etree.HTML(html)
    #----------------title-------------------
    name = selector.xpath('//*[@id="profileleftinside"]/div[2]/h2/text()')
    print(name)
    if name == []:
        i = i-2
        continue

    content.append(str(name[0]).strip("\n"))
    #-------------abstract----------------
    abstract = selector.xpath('//*[@id="abstractSection"]/p/text()')
    print(abstract)
    content.append(str(abstract).strip("\n"))
    #-------------authorwords----------------
    authorwords = selector.xpath('/html/body/div[1]/div[1]/div[1]/div[2]/div[1]/div[3]/div[3]/div[1]/div[1]/div[2]/div[2]/section[8]/span/text()')
    print(authorwords)
    content.append(str(authorwords).strip("\n"))
    #-------------indexkeywords----------------
    if authorwords == []:
        section = 8
    else:
        section = 9
    indexkeywords = selector.xpath(
        '/html/body/div[1]/div[1]/div[1]/div[2]/div[1]/div[3]/div[3]/div[1]/div[1]/div[2]/div[2]/section[%d]/table/tr/th/text()'%section)
    if indexkeywords == []:
        section = 5
    indexkeywords = selector.xpath(
        '/html/body/div[1]/div[1]/div[1]/div[2]/div[1]/div[3]/div[3]/div[1]/div[1]/div[2]/div[2]/section[%d]/table/tr/th/text()' % section)
    print(indexkeywords)
    for j in range(len(indexkeywords)):
        k = selector.xpath(
        '/html/body/div[1]/div[1]/div[1]/div[2]/div[1]/div[3]/div[3]/div[1]/div[1]/div[2]/div[2]/section[%(sec)d]/table/tr[%(i)d]/td/span/text()'%{"sec":section,"i":(j+1)})
        print(indexkeywords[j])
        print(k)
        content.append(str(indexkeywords[j]).strip("\n"))
        content.append(str(k).strip("\n"))
    writer.writerow(content)
res.close()        

第三步:分年在并行跑以上代码。大约每条文献url的内容获取及解析需要6秒。
希望对大家有帮助!

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Chrono下载管理器是Chrome浏览器下第一款(也是唯一一款)功能全面的下载管理工具。Chrono可以接管用户在Chrome中的所有下载,用户所有下载管理工作都在浏览器中完成,而不需要安装另外的程序。Chrono与Chrome浏览器紧密地整合在一起,添加了对浏览器菜单、工具栏和快捷键的支持。除了高效管理下载任务,Chrono也给用户提供了下载视频或批量下载图片的采集功能。Chrono资源嗅探器可以检测网页上的所有链接、图片、音频和视频,你还可以根据链接的文件类型或正则表达式来筛选你要下载的地址。 官方备注的chrono下载管理器的功能有: * 完全替换Chrome浏览器自带的下载管理界面,隐藏Chrome底部的下载内容栏,你可以使用快捷键Ctrl-J打开Chrono下载管理器。 * 使用表格来高效紧凑地管理下载任务。 * 一键随时在下拉窗口中查看下载列表。 * 支持下载任务的排队/暂停/恢复/重启/回收/搜索。 * 桌面提醒和声音提醒帮助你快速获知下载任务的完成或中断。 * 新任务对话框允许你输入多个网址进行同时下载。 * 高度可自定义的任务过滤器让你可以通过文件类型、网址、日期等等来分组过滤下载任务。 * 批量描述符让你可以轻松地批量下载一系列相似的网址。 * 命名字段帮助你快速、自动地设置文件名,如使用网址信息、引用页、时间及任务的其他信息进行命名。 * 规则系统可以自动化你的下载,根据规则为下载任务自动设置命名字段和将文件保存到不同位置。
四种数据库的不同检索方式主要指的是文献检索中常用的四种数据库,即PubMed、Web of Science、Scopus和Google Scholar。它们的检索方法略有不同,具体如下: 1. PubMed:PubMed是美国国家医学图书馆(NLM)提供的医学文献检索工具,主要收录医学、生命科学、生物医学等相关领域的文献。其检索方式主要是通过关键词检索,可以根据文献类型、出版日期、语言等进行筛选。 2. Web of Science:Web of Science是知名的科学文献检索工具,主要收录自然科学、社会科学、人文学科等领域的文献。其检索方式主要是通过关键词、作者、文献题名等进行检索,也可以通过引用关系、作者合作关系等进行检索。 3. ScopusScopus是知名的综合性文献检索工具,主要收录科技、医学、社会科学等领域的文献。其检索方式主要是通过关键词、作者、出版物名称等进行检索,也可以通过引用关系、作者合作关系等进行检索。 4. Google Scholar:Google Scholar是谷歌公司提供的学术搜索引擎,主要收录各个学科领域的文献。其检索方式主要是通过关键词检索,可以根据文献类型、作者、出版物名称等进行筛选。同时,Google Scholar还可以通过引用关系、作者合作关系等进行检索。 总体来说,这四种数据库的检索方式都是基于关键词的检索,但在具体的检索策略和筛选条件上略有不同。对于不同的研究领域和目的,选择合适的数据库并掌握其检索方法是十分重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值