论文爬取系统 | (4) 项目文件组织方式

项目Github地址​​​​​​​

NLP论文爬取系统的项目目录:

1)BasicSpider.py中定义了爬虫基类

2)AAAI.py定义了AAAI爬虫子类

3)IJCAI.py定义了IJCAI爬虫子类

4)ACLSeries.py定义了ACL系列爬虫子类

5)config.py定义了爬取参数,如会议名称、年份、关键词、领域等信息。

6)spider.py是程序入口

 

  • __init__.py

spidersModule的__init__.py文件定义如下:

from .IJCAI import IJCAI
from .ACLSeries import ACLSeries
from .AAAI import AAAI

这样我们就可以在spider.py中按照如下的方式调用:

 spiderTool = getattr(spidersMoudle, opt.spiderTool)(opt)

 spiderTool.main()

这意味着我们可以通过字符串或在config.py中进行定义直接指定使用的爬虫工具(AAAI、IJCAI or ACLSeries),而不必使用判断语句,也不必在每次新增加爬虫工具后都修改代码。新增爬虫工具后只需要在spidersModule/__init__.py中加上:

from .new_module import NewModule
  • config.py

定义了论文爬取系统的相关参数:


class DefaultConfig(object):

    spiderTool = 'ACLSeries'
    Keywords= ['emotion detect conversation','emotion detect dialog','emotion recognition conversation','emotion recognition dialog']  # 关键词列表
    Years = [2016,2017,2018,2019]
    Field = '对话情感分析'
    Meeting = 'NAACL'
    path = '/Users/apple/PycharmProjects/NLPPapersSpider/'

def parse(self, kwargs):
    '''
    根据字典kwargs 更新 默认的config参数
    '''
    # 更新配置参数
    for k, v in kwargs.items():
        if not hasattr(self, k):
            # 警告还是报错,取决个人喜好
            warnings.warn("Warning: opt has not attribut %s" % k)
        setattr(self, k, v)

    # 打印配置信息
    print('user config:')
    for k, v in self.__class__.__dict__.items():  # python3 中iteritems()已经废除了
        if not k.startswith('__'):
            print(k, getattr(self, k))


DefaultConfig.parse = parse
opt = DefaultConfig()

程序默认使用该文件中的参数,当然也可以通过在命令行运行程序时输入新的参数对其进行覆盖。

  • 系统使用方式

1)打开命令行,进入spider.py文件所在的路径下。

2)执行以下命令:

python spider.py spider  #此时将使用config.py中的默认配置

可以在config.py中修改配置,再次运行上面的命令。也可以在命令行传入新的参数对其进行覆盖:

#爬取ACL系列会议论文(ACL、EMNLP、COLING、NAACL、EACL、CoNLL等等) 
#爬取ACL
python spider.py spider --spiderTool='ACLSeries' --Keywords=['dialog','conversation','chatbot'] --Years=[2016,2017,2018,2019] --Field='对话' --Meeting='ACL' --path='/Users/apple/Desktop' 
#爬取EMNLP
python spider.py spider --spiderTool='ACLSeries' --Keywords=['dialog','conversation','chatbot'] --Years=[2016,2017,2018,2019] --Field='对话' --Meeting='EMNLP' --path='/Users/apple/Desktop' 

#爬取AAAI会议论文
python spider.py spider --spiderTool='AAAI' --Keywords=['dialog','conversation','chatbot'] --Years=[2016,2017,2018,2019] --Field='对话' --Meeting='AAAI' --path='/Users/apple/Desktop' 


#爬取IJCAI会议论文
python spider.py spider --spiderTool='IJCAI' --Keywords=['dialog','conversation','chatbot'] --Years=[2016,2017,2018,2019] --Field='对话' --Meeting='IJCAI' --path='/Users/apple/Desktop' 

 

发布了365 篇原创文章 · 获赞 712 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/sdu_hao/article/details/104081257