1 數(shù)據(jù)采集概述

開始一個數(shù)據(jù)分析項目,首先需要做的就是get到原始數(shù)據(jù),獲得原始數(shù)據(jù)的方法有多種途徑。比如:

  1. 獲取數(shù)據(jù)集(dataset)文件

  2. 使用爬蟲采集數(shù)據(jù)

  3. 直接獲得excel、csv及其他數(shù)據(jù)文件

  4. 其他途徑…

本次福布斯系列數(shù)據(jù)分析項目實戰(zhàn),數(shù)據(jù)采集方面,主要數(shù)據(jù)來源于使用爬蟲進(jìn)行數(shù)據(jù)采集,同時也輔助其他數(shù)據(jù)進(jìn)行對比。

本文主要是介紹使用爬蟲進(jìn)行數(shù)據(jù)采集的思路和步驟。

本次采集的福布斯全球上市企業(yè)2000強(qiáng)排行榜數(shù)據(jù),涉及年份從2007年到2017年,跨越10多年。

本次采集的目標(biāo)網(wǎng)站,是多個網(wǎng)頁,但多個網(wǎng)頁的分布結(jié)構(gòu)都有所不同,雖然思路和步驟都差不多,但需要分開來編寫,分別采集。

2 數(shù)據(jù)采集步驟

數(shù)據(jù)采集大體分為幾步:

  1. 目標(biāo)主網(wǎng)頁內(nèi)容的Download

  2. 主網(wǎng)頁上數(shù)據(jù)的采集

  3. 主網(wǎng)頁上其他分發(fā)頁面網(wǎng)站鏈接的采集

  4. 各分發(fā)網(wǎng)頁數(shù)據(jù)的download與采集

  5. 將采集的數(shù)據(jù)保存

涉及到的python庫包括,requests、BeautifulSoup以及csv。 下面以采集某年的數(shù)據(jù)為案例,來描述下數(shù)據(jù)采集的步驟。

import requestsfrom bs4 import BeautifulSoupimport csv

2.1 數(shù)據(jù)Download模塊

主要是基于 requests,代碼如下:

def download(url):
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59