Python大佬批量爬取中國(guó)院士信息,告訴你哪個(gè)地方人杰地靈

院士(academician)一詞源自古希臘傳說中的英雄academy,這位英雄為了拯救雅典而犧牲,是科學(xué)及學(xué)術(shù)界的最高榮譽(yù)頭銜。要了解中國(guó)院士的分布情況,我們可以借助python爬蟲來獲取詳細(xì)信息。

背景調(diào)研

目前,中國(guó)院士總數(shù)超過1500人,其中科學(xué)院院士799人,工程院院士875人。

本文將以工程院院士信息的抓取為例進(jìn)行詳細(xì)講解。

工程院士出生地分布圖

立即學(xué)習(xí)Python免費(fèi)學(xué)習(xí)筆記(深入)”;

Python大佬批量爬取中國(guó)院士信息,告訴你哪個(gè)地方人杰地靈

必備模塊

通過pip安裝以下模塊:

  • scrapy爬蟲框架模塊
  • jieba分詞模塊
  • win32api

如果遇到ImportError: DLL load failed: 找不到指定的模塊錯(cuò)誤,請(qǐng)將D:python27_64Libsite-packagespywin32_system32下的所有文件復(fù)制到C:windowsSystem32目錄下。

爬蟲流程

  1. 建立爬蟲項(xiàng)目:在E盤下創(chuàng)建project_scrapy文件夾,進(jìn)入該文件夾并打開cmd窗口,運(yùn)行以下命令搭建爬蟲框架:

    scrapy startproject engaca_spider

    目錄樹如下:

    E:project_scrapy>tree /f
  2. 設(shè)置輸出內(nèi)容:在items.py中添加如下內(nèi)容:

    # -*- coding: utf-8 -*-

    在settings.py中設(shè)置爬蟲源頭,添加以下語句:

    starturl = 'https://www.php.cn/link/d543ca8a30aea952046a5e6827cb1b73'
  3. 省份列表文件:在scrapy.cfg的同層文件夾中存放pro_list.txt文件。鏈接:https://www.php.cn/link/14bf6dce0a0ceb6662449793da991fb8,密碼:selo

  4. 爬蟲核心代碼:在spiders文件夾下創(chuàng)建aca_spider.py文件,添加以下代碼:

    # -*- coding: utf-8 -*-
  5. 結(jié)果輸出代碼:在pipelines.py中處理輸出內(nèi)容,可以將內(nèi)容保存到數(shù)據(jù)庫(kù)或文本文件中。這里直接保存到result.txt中:

    # -*- coding: utf-8 -*-

    在settings.py中指定輸出管道:

    ITEM_PIPELINES = {     # ... }
  6. 運(yùn)行爬蟲:在scrapy.cfg的同層文件夾下打開cmd窗口,運(yùn)行以下命令:

    scrapy crawl EngAca

    結(jié)果文件result.txt將生成在該目錄下。

數(shù)據(jù)可視化

利用pycharts進(jìn)行數(shù)據(jù)可視化,參照教程繪制地圖熱圖。根據(jù)生成的熱圖,我們可以看出,江蘇省的院士數(shù)量最多,超過100人,確確實(shí)實(shí)是一個(gè)人杰地靈的地方。

Python大佬批量爬取中國(guó)院士信息,告訴你哪個(gè)地方人杰地靈

項(xiàng)目所有文件

所有項(xiàng)目文件的鏈接:https://www.php.cn/link/4b12d1170b1c520116d2b7987dd47140,密碼:jdst

總結(jié)

這是一個(gè)基礎(chǔ)且重要的爬蟲練習(xí),涉及到的內(nèi)容沒有JS加密和反爬措施。通過這個(gè)練習(xí),可以熟悉爬蟲框架的使用。數(shù)據(jù)預(yù)測(cè)未來,掌握這些技能可以讓我們?cè)谧鍪聲r(shí)先人一步。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊9 分享