Skip to main content

CnkiSpider是一个高效爬取知网文章信息的包

Project description

CnkiSpider使用指南(by@zemengchuan)

GitHub链接:https://github.com/zemengchuan/CnkiSpider

用途:

CnkiSpider可以通过简单的代码实现高效的知网文章信息爬取,主要爬取的内容包括:【标题、作者、发表时间、来源、链接】,并将爬取的结果保存为CSV格式。经测试,某作者在知网上的821篇文章只需要2-4s即可全部获取(不同设备及网络情况可能会出现差异),效率相对而言比较高。

CnkiSpider的高效来自于采用了多线程的方式进行爬取。目前实现了知网常规的所有搜索方式进行查询,将来还会持续更新通过其他缩小范围的方式(如发表年度、研究层次等)方式,还计划实现相关的图表分析功能,现在先将实现的部分上传供大家使用

安装方式

pip install CnkiSpider

优势

  • 能够在较短时间内爬取大量数据
  • 能够实现知网的基本搜索功能

缺点

  • 目前不能使用更精细的方式(如发表年度、研究层次等)
  • 保存的方式较为单一,目前只能保存为csv

使用方式

1、参数介绍

CnkiSpider的核心函数是CnkiSpider(search_mode, search_content,author_code='', institution=''),其中,searchmode是搜索模式,可选内容如下表所示:

模式 描述
SU 主题
TKA 篇关摘
KY 关键词
TI 篇名
FT 全文
FU 基金
AB 摘要
CO 小标题
RF 参考文献
CLC 分类号
LY 文献来源
DOI DOI
AU 作者
FI 第一作者
RP 通讯作者

search_content是搜索内容,填入您需要搜索的内容即可;author_codeinstitution是使用通过作者查询时的可选参数,为作者代码和作者第一机构,如果不需要通过作者查询或不知道这两个内容,可以不填。

2、属性介绍

CnkiSpider对象有以下几个属性供用户调用:

  • .info返回CnkiSpider对象的基本信息,包含搜索模式、搜索内容和保存路径
  • .path返回CnkISpider对象的保存路径,可以通过修改该对象将文件保存到自定义的路径
  • .session返回CnkiSpider的Session对象,供有需求的用户使用

3、方法介绍

CnkiSpider对象目前有两个方法:

  • .get_overview(save=True)获取搜索信息概览,默认保存概览文件overview.csv,可以修改save=False不保存文件,函数会返回一个DataFrame对象。使用方法如下:

    from CnkiSpider import CnkiSpider
    
    """
    这里使用搜索模式为”第一作者“,且没有作者的代码和机构
    此时函数会自动指引您获得相关信息
    """
    search_mode = 'FI'
    search_content = '钟南山'
    cs = CnkiSpider(
             search_mode=search_mode, 
             search_content=search_content,
    )
    
    df = cs.get_overview()
    

    输出结果:

    """
    作者              机构
    0  钟南山           中国工程院
    1  钟南山                
    2  钟南山                
    3  钟南山      南昌大学第一附属医院
    4  钟南山   共信医药科技股份有限公司;
    5  钟南山          南风窗杂志社
    6  钟南山         扎木县人民医院
    7  钟南山                
    8  钟南山                
    9  钟南山  上海明品医学数据科技有限公司
    请选择需要查询的作者序号(输入exit退出,输入re再次获取):0
    "钟南山"在知网上共有记录137条,详细情况如下:
    总库:137篇
    学术期刊:122篇
    特色期刊:8篇
    学术辑刊:0篇
    学位论文:0篇
    博士:0篇
    硕士:0篇
    会议:3篇
    国内会议:3篇
    国际会议:0篇
    会议视频:0篇
    报纸:4篇
    年鉴:0篇
    专利:0篇
    中国专利:0篇
    海外专利:0篇
    图书:0篇
    外文图书:0篇
    中文图书:0篇
    标准:0篇
    国家标准:0篇
    行业标准:0篇
    标准题录:0篇
    成果:0篇
    古籍:0篇
    视频:0篇
    """
    
  • .get_result()返回搜索内容在知网上的所有反馈,并且保存在result.csv文件中。函数会返回一个DataFrame对象。使用方法如下:

    from CnkiSpider import CnkiSpider
    
    """
    这里使用搜索模式为”作者“,且提供了作者的代码和机构
    此时函数会自动指引您获得相关信息
    """
    
    search_mode = 'AU'
    author_code = '000039348927'
    institution = '四川大学'
    search_content = '王红宁'
    cs = CnkiSpider(
        search_mode=search_mode, 
        search_content=search_content,
        author_code=author_code,
        institution=institution)
    
    df = cs.get_result()
    

    输出结果:

    """
    一共有文章428篇
    共需要爬取9页
    ====================================================================================================
    正在爬取第2页……
    正在爬取第3页……
    正在爬取第4页……
    正在爬取第5页……
    正在爬取第6页……
    正在爬取第7页……
    正在爬取第8页……
    正在爬取第9页……
    第9页爬取成功!第9页有28条数据
    第7页爬取成功!第7页有50条数据
    第4页爬取成功!第4页有50条数据
    第6页爬取成功!第6页有50条数据
    第5页爬取成功!第5页有50条数据
    第3页爬取成功!第3页有50条数据
    第2页爬取成功!第2页有50条数据
    第8页爬取成功!第8页有50条数据
    ====================================================================================================
    爬取完成,已将结果保存至./王红宁-AU/
    """
    

4、使用举例

from CnkiSpider import CnkiSpider

"""
这里使用搜索模式为”篇名“,且没有作者的代码和机构
此时函数会自动指引您获得相关信息
"""
search_mode = 'TI'
search_content = '粘质沙雷氏菌'
cs = CnkiSpider(
         search_mode=search_mode, 
         search_content=search_content,
)

overview_df = cs.get_overview()

result_df = cs.get_result()

输出结果:

"""
"粘质沙雷氏菌"在知网上共有记录628条,详细情况如下:
总库:628篇
学术期刊:457篇
特色期刊:0篇
学术辑刊:0篇
学位论文:139篇
博士:19篇
硕士:120篇
会议:28篇
国内会议:27篇
国际会议:1篇
会议视频:0篇
报纸:0篇
年鉴:0篇
专利:0篇
中国专利:0篇
海外专利:0篇
图书:0篇
外文图书:0篇
中文图书:0篇
标准:0篇
国家标准:0篇
行业标准:0篇
标准题录:0篇
成果:4篇
古籍:0篇
视频:0篇
一共有文章628篇
共需要爬取13页
====================================================================================================
正在爬取第2页……
正在爬取第3页……
正在爬取第4页……
正在爬取第5页……
正在爬取第6页……
正在爬取第7页……
正在爬取第8页……
正在爬取第9页……
正在爬取第10页……
正在爬取第11页……
正在爬取第12页……
正在爬取第13页……
第13页爬取成功!第13页有28条数据
第2页爬取成功!第2页有50条数据
第11页爬取成功!第11页有50条数据
第8页爬取成功!第8页有50条数据
第12页爬取成功!第12页有50条数据
第5页爬取成功!第5页有50条数据
第4页爬取成功!第4页有50条数据
第3页爬取成功!第3页有50条数据
第6页爬取成功!第6页有50条数据
第7页爬取成功!第7页有50条数据
第9页爬取成功!第9页有50条数据
第10页爬取成功!第10页有50条数据
====================================================================================================
爬取完成,已将结果保存至./粘质沙雷氏菌-TI/
"""

文件预览:

image-20230220165718595

计划

  • 知网上所有缩小范围方式爬取文献
  • 知网上所有文献信息可视化获取
  • 设计将数据存储至数据库的函数
  • ……

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

CnkiSpider-1.1.0.tar.gz (10.7 kB view hashes)

Uploaded Source

Built Distribution

CnkiSpider-1.1.0-py3-none-any.whl (12.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page