|
爬蟲很有趣,很多同學(xué)都在學(xué)爬蟲,其實爬蟲學(xué)習(xí)有一定的成本,需要考慮靜態(tài)和動態(tài)網(wǎng)頁,有一堆的庫需要掌握,復(fù)雜的需要用scrapy框架,或者用selenium爬取,甚至要考慮反爬策略。如果你不經(jīng)常爬數(shù)據(jù),偶爾用用的話,有一種神器可以非??焖俚呐廊。址址N上手而且效果很不錯的。今天我們就來介紹一下這款神奇'WebScrapy' 安裝WebScrapy 跟其他的第三方的數(shù)據(jù)采集器相比,WebScrapy是一款Google chrome的瀏覽器的插件,安裝成本非常小.直接去WebScrapy官網(wǎng)下載,也可以在chrome里面的store下載. 安裝完成之后,你就可以在你的chrome瀏覽器上看到一個小的蜘蛛網(wǎng)的圖標(biāo) 爬取Github上的Python庫 大名鼎鼎的Github上有很多好玩的庫,有幾十萬個repo.爬取的方法有很多,但是用webscrape爬取非常簡單,幾分鐘就能完成!相比之下如果寫一個代碼去爬取的就是非常熟練的老手,也需要半個小時才能完成,代碼還需要調(diào)試??梢娚衿髡娴姆浅7奖?,成本非常的低,下面我們一步一步來講解: 1.目標(biāo)網(wǎng)站分析 Github的網(wǎng)站結(jié)構(gòu)非常簡單,也沒有啥反爬蟲的策略,我們在主頁搜索Python就會進入Python相關(guān)的主題頁面 里面有關(guān)于Python的Repo近60萬個,每一個都有名字,多少顆星,更新時間等等,非常工整的格式. 2.url分析 上面的類別有很多比如Repositories, Code這樣的,我們挑其中的一種點擊查看:
了解上面的url規(guī)則之后,其他的網(wǎng)頁只要改改上面的參數(shù)就行了,比如第2頁, https://github.com/search?p=2&q=Python&type=Repositories&utf8=%E2%9C%93 好下面我們開始爬網(wǎng)頁. 3.啟動Webscrapy 網(wǎng)頁空白處點擊右鍵選擇檢查,會進入我們屬性網(wǎng)頁審查元素的那個界面,在最末尾多一個webscraper菜單,點擊Create sitemap創(chuàng)建一個sitemap 接著我們填入名字和url的地址,這里的url規(guī)則非常簡單,我們可以直接構(gòu)造出100個url的網(wǎng)頁,名字可以隨便取我們就叫g(shù)ithub webscrapy會根據(jù)url的規(guī)則爬取每一頁的內(nèi)容,類似一個循環(huán)。 4.爬取每一頁的內(nèi)容 Github上的Python的庫都是一個一個規(guī)整的大列表,webscrapy支持很多類型的不同網(wǎng)頁元素的爬取,比如文本,超鏈接,圖片,Element等等,真是用心良苦啊,考慮的非常周全. 1). 增加一個selector 選擇我們的Sitemap是Github,然后開始增加一個selector 2).創(chuàng)建item
3).在item里面選擇標(biāo)題,時間,多少顆星 上面我創(chuàng)建了item,item就想是一個收納架里面有我們需要的內(nèi)容,我們只需要在這個收納架上取我們需要的內(nèi)容,比如標(biāo)題,時間等等 4).在item下創(chuàng)建標(biāo)題 過程和創(chuàng)建item的非常類似,只是Type選擇Text,然后點擊Selector從上面的橘黃色的框中選標(biāo)題,然后點擊Done selecting,記得保存.(注意這里的Parents Selector 選的item),大家不要小看這個Parent Selector,會有大用場. 5).類似的我們選取庫的description,多少顆,時間元素 ![]() 5.開始爬取 萬事具備,我們可以開始愉快的爬取了,只需要點擊Sitemap下面的Scrape就可以了。接著會彈出一個請求間隔時間(Request nterval ms) 2秒和頁面下載等待時間(Page load delay ms)500,我們都用默認(rèn)參數(shù)就可以了 ![]() 1).看運行結(jié)果 WebScrapy會從第100頁開始從后往前一頁一頁的爬取,這個時候你可以倒杯茶,慢悠悠的邊喝茶邊等待結(jié)果,爬取100頁大概需要幾分鐘的時間. ![]() 可以看到我們非常方便的獲取的Python庫的名字,多少顆星,時間和描述,是不是很簡單啊,現(xiàn)在還差最后一招,保存結(jié)果。 2). 保存結(jié)果 上面的結(jié)果是在內(nèi)存里面的,最后我們需要保存到文件里面,webscraper已經(jīng)幫我們準(zhǔn)備好了,點擊sitemap里面的Export data as CSV,然后就會自動生成一個github.csv文件,我們下載就行了 ![]() 結(jié)論 是不是非常的爽啊,你只要構(gòu)造多個url就可以爬幾萬的庫,webscrapy對于爬取市面上80%的頁面都是非常方便和簡單,不用寫一行代碼,分分鐘搞定!對于數(shù)據(jù)分析的人員來說簡直就是福音啊,但是webscrapy也是有利有弊,每一種技術(shù)都有它的使用范圍.我用它有一段時間了,至少有3個缺點,歡迎大家留言跟我一起討論. |
|
|