1 數(shù)據(jù)采集概述
開始一個數(shù)據(jù)分析項目,首先需要做的就是get到原始數(shù)據(jù),獲得原始數(shù)據(jù)的方法有多種途徑。比如:
獲取數(shù)據(jù)集(dataset)文件
使用爬蟲采集數(shù)據(jù)
直接獲得excel、csv及其他數(shù)據(jù)文件
其他途徑…
本次福布斯系列數(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ù)采集大體分為幾步:
目標(biāo)主網(wǎng)頁內(nèi)容的Download
主網(wǎng)頁上數(shù)據(jù)的采集
主網(wǎng)頁上其他分發(fā)頁面網(wǎng)站鏈接的采集
各分發(fā)網(wǎng)頁數(shù)據(jù)的download與采集
將采集的數(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