數據爬蟲入門與進階

說明:本文章內容學習自“三 節 課”平臺的《人人都能學會的數據爬蟲課》。

產品和運營工作中,經常需要做出大量的決策,在很多時候決策的做出是需要靠數據進行支撐的,數據能夠讓我們避免自己的主觀判斷。

如何獲取到未經行業機構處理過的數據,拿到熱乎的一手資料呢?爬蟲,能實現大部分(80%)的網站數據的抓取。

一、爬蟲的應用場景

1、爬蟲(網絡爬蟲/spider/數據抓取):自動抓取萬維網的程序或腳本。

2、常見應用場景和功能

(1)市場營銷

a、搜索引擎優化(Search Engine Optimization):獲取本品和競品排名,優化搜索引擎方案。

b、市場研究(Market Research):市場容量的研究和市場行業趨勢的變化。

c、潛在客戶/線索(Lead Generation):對知乎等各種話題關注者,微博粉絲進行定向推送。

(2)競品分析

a、輿情分析(Reviews and Sentiments):社交媒體/購物網站里評論里收集反饋與輿情分析。

b、競品社交媒體發布及其粉絲(Content Approach and Followers):競品最近發布了什么內容,轉化粉絲。

c、價格對照(Price Comparison):根據CPI(居民消費價格指數)價格動態波動。

d、變化檢測(Change Detection):競品促銷,價格變化,品類擴充。

(3)職業發展與個人生活

a、求職招聘(Job Hunting and Recruiting):求職者定向求職,Hr定向挖人。

b、產品和服務(Products and Services):比較價格和口碑。

c、財務規劃(Financial Planning):證券專家的評論。

d、買/租/賣(Looking to Buy/Rent/Sell)。


二、常見抓取工具

1、excel。(簡單的table布局適用)

2、第三方工具:火車頭,八爪魚。

3、web Scraper。

4、Python Scraper。


三、Excel抓取簡單的數據

操作步驟說明

1、打開可抓取的網頁,F12檢查元素,NetWork項,選擇Filter,刷新重新加載頁面,得到對應的xml文件,右鍵 open in new tab就可以看到相應網站內所有要抓取的信息。

2、打開Excel,選擇數據標簽頁,點擊自網站,輸入要抓取的信息網址,黃色標記點綠,加載完后點擊導入即可。


Excel作為抓取工具的總結:

1、用excel的學習成本較低,上手快;

2、可以用excel的一些工具對數據進行操作,比如上圖中的全部刷新(實時獲取網站數據),以及分列,合并計算等小工具的使用;

3、局限性較大,只能對一些老的以table布局的網站起作用。


四、爬蟲插件 web Scraper

能翻墻的請直接在谷歌應用商店,搜索webscraper,添加擴展程序,自動安裝好后就可以直接使用了。不能翻墻的請自行百度。

1、頁面可視范圍內基本元素的抓取

新建站點地圖create new sitemap(import sitemap 需要用到JSON格式的特殊代碼),選擇multiple,再點擊select,點選頁面要選中的元素,點選兩個之后,插件就可以自動識別到所有要點選的同類元素。(從代碼的角度設想該插件的原理應該是,批量獲取頁面中同種級別元素內的text文本內容)

建好選擇器之后,我們就可以預覽各種效果,然后可以開始抓取了:點擊Scrape,直接Start Scraping,抓取完畢之后會有成功的提示,此時我們可以把抓取好的數據,選擇是否導出(點擊Export Date As CSV)。

此方法只能下載一個頁面初始加載時的數據量。這個不難想象,因為頁面的數據是由鼠標滾輪滾動時訪問數據庫進行頁面加載的,元素的內容都是頁面事件觸發后生成的,所以獲取不到。

開個腦洞:如果能寫個腳本,讓程序自動觸發鼠標的滾動事件,那是不是就能獲取到更多呢?

2、分頁的所有元素抓取

元素分頁的規律性,對要抓取的網頁page進行限定。

對新建的站點地圖進行編輯,Edit Metadata,對照url上呈現的翻頁規則,將Start URL里對應的翻頁規則進行改變。規則是:[想抓取的初始頁碼值-想抓取得結束頁碼值:頁碼差值]。

比如豆瓣這個網頁的翻頁規律是start參數依次加25,等差數列,差值為25,所以可以寫成:

https://movie.douban.com/top250?start=[0-500:25]&filter=

一般規律為page,一頁一頁加法,所以寫成 page=[1-23]

建好之后,遵照 1、的方法,新建selector,最后進行scrape就可以了。

3、多元素抓取---進階

(1)、一個頁面如何抓取多個元素呢?

(2)、現今流行的滾動或交互式動態加載(不規則分頁)模式下又該如何抓取元素內容呢?

(3)、快捷鍵快速選中某個元素;

(4)、用鏈接采集二級三級頁面;

(5)、抓取圖片和表單的方法;

概念總結:以上各種方法其實根據的原理都是頁面元素,模擬瀏覽器事件,對瀏覽器加載出來的頁面中的元素內容或者資源進行提取。

4、詳細進階方式(80%)

(1)一個頁面抓取多個元素(一般是相關聯的元素)

同之前的例子,先新建一個站點地圖。

為此站點新建一個選擇器,type為element,Multiple多選,選中所有大標簽,done selecting后可預覽一下選中的項

選中大層級元素

保存好外層選擇器后,點擊選擇器,進入子選擇器頁面,再次add selector,添加子層選擇器。

選中子層級元素

添加了多個子層選擇器后,可以預覽一下效果是否如你所愿。

多個選擇器可以先預覽效果


抓取得到的元素結果集預覽

最后,就可以用之前的招數,開始進行scrape抓取,生成csv了。

(2)不規律分頁的抓取

初始步驟同上,新建站點地圖,再新建選擇器,如下圖,選擇好要抓取的元素,選擇好需要瀏覽器自動執行點擊事件的元素“加載更多”,點擊類型選擇click more,告訴瀏覽器要一直加載完成方能結束,click element uniqueness 告訴瀏覽器,當點擊選擇器變成什么樣子了就不需要再繼續進行了,一般有 unique text(文本變化),html + text(網址或文本變化),html (網頁變化),css selecor(選擇器的樣式變化)。

新建一個Multiple屬性的Element click類型,selector指向大元素


新建一個click selector,指向加載更多元素


在上面的基礎上,新建一個子選擇器,選擇公司名所在的元素


子選擇器按一般的規則來,text類型,非multiple,selector選中標題文本

結束上述步驟后抓取就可以了。抓取的速度有時會很慢,需要耐心等待。

抓取的結果示意圖,可保存成csv

(3)快捷鍵抓取

點擊selector選擇元素后,點擊Enable Key開啟鍵盤操作,鼠標懸停,等采集字段變綠后按鍵盤:S=選中;P=父類;C=子類。

可通過鍵盤的S,P,C進行鼠標懸停選取

(4)用鏈接采集二級三級頁面

按Element方法圈好要抓取的元素大類。

element類型的抓取

抓取子元素招股說明書名稱。type為text類型

在element類型大類中,抓取說明書名稱子類

再抓取一個子類,招股說明書發布的日期。type為text類型

在element類型大類下抓取日期子類

接下來抓取列表的三級頁面鏈接,注意新建的選擇器type為link類型。

在Element大類下,抓取頁面的鏈接子類

要抓取的類的層級結構如下:

downfile為大類選擇器名稱,此圖中展示的是大類下的三個要抓取的子類

以上就緒之后,我們還需要在三級頁面中設置一個link選擇器。

打開三級頁面(選擇一個招股說明書點擊打開新頁面),在上一次設置的link選擇器的子級,新建一個選擇器,type為link,鏈接到對應的下載按鈕即可。

明細頁面新建一個link類型的選擇器,選擇頁面的下載按鈕
層級關系

以上都設置完成后,即可點擊進行抓取。

抓取的過程中,插件會自動將頁面的二級三級頁面依次打開,并進行抓取,抓取完成后生成的是一個帶有下載鏈接的數據包。此時我們可以通過迅雷或者QQ旋風批量下載功能,對需要的文件進行下載。

下載的CSV數據文件

Q:link類型和Element Click等類型有什么區別?

A:以上兩種類型都能進行采集二級或者三級頁面數據,但,新鏈接為A標簽時,Type都可以用Link,采集URL時,必須要用link類型。非A標簽必須要把type設為Element click等類型才可以采集二三級頁面。


(5)抓取圖片和表單

a.抓取圖片

一般抓取圖片的鏈接再用工具進行批量比較合適,type有為image的項。

b.抓取表單Table

抓取table的頭和數據子類

至此,數據爬蟲基本方法介紹完畢。

五、常見反爬蟲方法。

(1)反爬蟲常見手段和應對方法:

a文件頭 user-agent檢查:訪問設備返回數據進行檢查;

b動態加載(Ajax Javascript等):實時更新;

c用戶行為(cookies+請求時間間隔):頻率太高則臨時黑名單;

d人機交互驗證:圖形驗證碼等;

反爬應對方法:

web scraper用瀏覽器避免user-agent檢查,將cookies傳輸過去所以不會被檢查,是瀏覽器所以可以實現ajax javascript等方法,設置了時間間隔所以不會被查封。

(2)反爬中的奇葩

web scraper對于有些情況是無法抓取的。

比如

a美團網網頁端的團購價格,是使用的雪碧圖(小圖片集合到大圖中,根據定位來顯示價格),頁面中無法抓取到對應的元素,所以無法抓取到團購價格。但是手機端可以抓取。

b去哪兒網機票價格是用的元素位移,手機端用字體替換。

網頁端方式:1240 = 1 6 1 0 + 2 4(抓取下來用excel進行替換,或者腳本進行替換抓取等方法)

手機端方式:用ttf字體文件,將0123456789順序替換為0153246987。

c將結果解析為圖片。

對于這些奇葩網站的反爬技術,需要有高超的應對方法。

但是暫時還沒有攻略。

平臺給的作業。http://pm25.in/rank

作業進階


http://www.cninfo.com.cn/cninfo-new/fulltextSearch?code=?autosubmit=&keyWord=%E6%8B%9B%E8%82%A1%E8%AF%B4%E6%98%8E%E4%B9%A6

麥淘

http://m.maitao.com/classify/null?ids=1

IT桔子

https://www.itjuzi.com/search?key=%E4%BA%B2%E5%AD%90

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,002評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,400評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,136評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,714評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,452評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,818評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,812評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,997評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,552評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,292評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,510評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,035評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,721評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,121評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,429評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,235評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,480評論 2 379

推薦閱讀更多精彩內容