院士(academician)一词源自古希腊传说中的英雄academy,这位英雄为了拯救雅典而牺牲,是科学及学术界的最高荣誉头衔。要了解中国院士的分布情况,我们可以借助python爬虫来获取详细信息。
背景调研
目前,中国院士总数超过1500人,其中科学院院士799人,工程院院士875人。
- 科学院院士名单:https://www.php.cn/link/077efd55c94e1ea0c4e4583c8ea1c7f6
- 工程院院士名单:https://www.php.cn/link/d543ca8a30aea952046a5e6827cb1b73
本文将以工程院院士信息的抓取为例进行详细讲解。
工程院士出生地分布图
立即学习“Python免费学习笔记(深入)”;
必备模块
通过pip安装以下模块:
- scrapy爬虫框架模块
- jieba分词模块
- win32api
如果遇到ImportError: DLL load failed: 找不到指定的模块错误,请将D:python27_64Libsite-packagespywin32_system32下的所有文件复制到C:windowsSystem32目录下。
爬虫流程
-
建立爬虫项目:在E盘下创建project_scrapy文件夹,进入该文件夹并打开cmd窗口,运行以下命令搭建爬虫框架:
scrapy startproject engaca_spider
目录树如下:
E:project_scrapy>tree /f
-
设置输出内容:在items.py中添加如下内容:
# -*- coding: utf-8 -*-
在settings.py中设置爬虫源头,添加以下语句:
starturl = 'https://www.php.cn/link/d543ca8a30aea952046a5e6827cb1b73'
-
省份列表文件:在scrapy.cfg的同层文件夹中存放pro_list.txt文件。链接:https://www.php.cn/link/14bf6dce0a0ceb6662449793da991fb8,密码:selo
-
爬虫核心代码:在spiders文件夹下创建aca_spider.py文件,添加以下代码:
# -*- coding: utf-8 -*-
-
结果输出代码:在pipelines.py中处理输出内容,可以将内容保存到数据库或文本文件中。这里直接保存到result.txt中:
# -*- coding: utf-8 -*-
在settings.py中指定输出管道:
ITEM_PIPELINES = { # ... }
-
运行爬虫:在scrapy.cfg的同层文件夹下打开cmd窗口,运行以下命令:
scrapy crawl EngAca
结果文件result.txt将生成在该目录下。
数据可视化
利用pycharts进行数据可视化,参照教程绘制地图热图。根据生成的热图,我们可以看出,江苏省的院士数量最多,超过100人,确确实实是一个人杰地灵的地方。
项目所有文件
所有项目文件的链接:https://www.php.cn/link/4b12d1170b1c520116d2b7987dd47140,密码:jdst
总结
这是一个基础且重要的爬虫练习,涉及到的内容没有JS加密和反爬措施。通过这个练习,可以熟悉爬虫框架的使用。数据预测未来,掌握这些技能可以让我们在做事时先人一步。