ACM-IEEE-arXiv论文信息爬虫

ACM-IEEE-arXiv Info Spider (开发中)

此项目的目的是从数字图书馆中抓取论文的结构化信息,这些信息可以用来进行学者分析,构建知识图谱等。

代码地址:https://github.com/xyjigsaw/ACM-IEEE-arXiv-Spider

支持的数据库

  • ACM (已完成,Support Digital Library Search Result)
  • IEEE (开发中,Support Single Page)
  • arXiv (已完成,Support All Categories)
  • AAAI (已完成,Support 2009-2019 AAAI Conferences)

关键词: Python, Scrapy, MySQL, Papers

依赖

  • Python 3.6
  • MySQL 8.0.17
  • scrapy
  • selenium
  • PhantomJS (optional only for IEEE_Spider)
  • scrapy_proxies
  • logging
  • re
  • pymysql
  • twisted
  • json
  • fake_useragent

数据库与数据结构

你可以执行 papers.sql 来初始化数据库。

MYSQL_DBNAME = 'papers'

TABLE_NAME = {'ACM_Data', 'IEEE_Data', 'arXiv_Data'}

特性

1. 一个脚本自动运行,以获得免费的代理(仅HTTP),并将很快集成到基于剪贴的主程序。
2. 对于每个请求,它将生成一个随机的代理和用户代理。
3.提供了TXT文件、原始json(不是确切的json)和MySQL来存储数据。
4. 给出了基于层的可选日志。
5. 采用异步模式作为MySQL管道的数据存储机制,解决爬行器数据泛滥的问题,提高了程序的运行效率和可靠性。

安装与运行

在您启动scrapy之前,您应该首先自定义设置。
当您启动IEEE_Spider时,需要添加基于selenium和PhantomJS的js中间件。

终端

或者

...

即将开发

  • IEEE Spider (The HTML is JS-dynamic.)
  • arXix (easy)
  • Proxy Downloader Integration
  • MongoDB Storage
  • Robuster Xpath Rules
  • UUID for Database
  • Crawl Specific Pages

数据预览

 

6 评论

  1. 感谢博主的分享。我在运行时遇到一点问题,能否请您解惑。我在获取代理列表时提示:“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。”请问这个问题如何解决,或者有什么解决思路吗,望解惑,十分感谢!

    • 了解,这个可能是代理站点服务器出现了问题,可以将middleware的代理服务注释掉,后续我会更新,请关注

  2. 这个爬虫太需要了。请问能不能多解释一下“启动scrapy之前的自定义设置”?是不是只需要在 settings.py 里面填入地址即可?还是middlewares.py也需要设置?

    • 你只需要配置setting.py的 URL、Database和PROXY_LIST(可选),这个文件是scrapy自动生成的,具体的网上有教程。middleware是用来反反爬虫的,一个是RandomUserAgentMiddleware另一个是JSMiddleware,这两个你不需要手动配置,也可以直接忽略掉。

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注