08.13 超酷!爬取GitHub上幾萬的Python庫

爬蟲很有趣,很多同學都在學爬蟲,其實爬蟲學習有一定的成本,需要考慮靜態和動態網頁,有一堆的庫需要掌握,複雜的需要用scrapy框架,或者用selenium爬取,甚至要考慮反爬策略。如果你不經常爬數據,偶爾用用的話,有一種神器可以非常快速的爬取,分分種上手而且效果很不錯的。今天我們就來介紹一下這款神奇"WebScrapy"

安裝WebScrapy

跟其他的第三方的數據採集器相比,WebScrapy是一款Google chrome的瀏覽器的插件,安裝成本非常小.直接去WebScrapy官網下載,也可以在chrome裡面的store下載.

超酷!爬取GitHub上幾萬的Python庫

安裝完成之後,你就可以在你的chrome瀏覽器上看到一個小的蜘蛛網的圖標

超酷!爬取GitHub上幾萬的Python庫

爬取Github上的Python庫

大名鼎鼎的Github上有很多好玩的庫,有幾十萬個repo.爬取的方法有很多,但是用webscrape爬取非常簡單,幾分鐘就能完成!相比之下如果寫一個代碼去爬取的就是非常熟練的老手,也需要半個小時才能完成,代碼還需要調試。可見神器真的非常方便,成本非常的低,下面我們一步一步來講解:

1.目標網站分析

Github的網站結構非常簡單,也沒有啥反爬蟲的策略,我們在主頁搜索Python就會進入Python相關的主題頁面

超酷!爬取GitHub上幾萬的Python庫

裡面有關於Python的Repo近60萬個,每一個都有名字,多少顆星,更新時間等等,非常工整的格式.

2.url分析

上面的類別有很多比如Repositories, Code這樣的,我們挑其中的一種點擊查看:

超酷!爬取GitHub上幾萬的Python庫

超酷!爬取GitHub上幾萬的Python庫

瞭解上面的url規則之後,其他的網頁只要改改上面的參數就行了,比如第2頁,https://github.com/search?p=2&q=Python&type=Repositories&utf8=%E2%9C%93好下面我們開始爬網頁.

3.啟動Webscrapy

網頁空白處點擊右鍵選擇檢查,會進入我們屬性網頁審查元素的那個界面,在最末尾多一個webscraper菜單,點擊Create sitemap創建一個sitemap

超酷!爬取GitHub上幾萬的Python庫

接著我們填入名字和url的地址,這裡的url規則非常簡單,我們可以直接構造出100個url的網頁,名字可以隨便取我們就叫github

超酷!爬取GitHub上幾萬的Python庫

webscrapy會根據url的規則爬取每一頁的內容,類似一個循環。

4.爬取每一頁的內容

Github上的Python的庫都是一個一個規整的大列表,webscrapy支持很多類型的不同網頁元素的爬取,比如文本,超鏈接,圖片,Element等等,真是用心良苦啊,考慮的非常周全.

1). 增加一個selector

選擇我們的Sitemap是Github,然後開始增加一個selector

超酷!爬取GitHub上幾萬的Python庫

2).創建item

超酷!爬取GitHub上幾萬的Python庫

超酷!爬取GitHub上幾萬的Python庫

3).在item裡面選擇標題,時間,多少顆星

超酷!爬取GitHub上幾萬的Python庫

上面我創建了item,item就想是一個收納架裡面有我們需要的內容,我們只需要在這個收納架上取我們需要的內容,比如標題,時間等等

4).在item下創建標題

超酷!爬取GitHub上幾萬的Python庫

過程和創建item的非常類似,只是Type選擇Text,然後點擊Selector從上面的橘黃色的框中選標題,然後點擊Done selecting,記得保存.(注意這裡的Parents Selector 選的item),大家不要小看這個Parent Selector,會有大用場.

5).類似的我們選取庫的description,多少顆,時間元素!

5.開始爬取

萬事具備,我們可以開始愉快的爬取了,只需要點擊Sitemap下面的Scrape就可以了。接著會彈出一個請求間隔時間(Request nterval ms) 2秒和頁面下載等待時間(Page load delay ms)500,我們都用默認參數就可以了

超酷!爬取GitHub上幾萬的Python庫

1).看運行結果

WebScrapy會從第100頁開始從後往前一頁一頁的爬取,這個時候你可以倒杯茶,慢悠悠的邊喝茶邊等待結果,爬取100頁大概需要幾分鐘的時間.

超酷!爬取GitHub上幾萬的Python庫

可以看到我們非常方便的獲取的Python庫的名字,多少顆星,時間和描述,是不是很簡單啊,現在還差最後一招,保存結果。2). 保存結果

上面的結果是在內存裡面的,最後我們需要保存到文件裡面,webscraper已經幫我們準備好了,點擊sitemap裡面的Export data as CSV,然後就會自動生成一個github.csv文件,我們下載就行了

超酷!爬取GitHub上幾萬的Python庫

結論:

你只要構造多個url就可以爬幾萬的庫,webscrapy對於爬取市面上80%的頁面都是非常方便和簡單,不用寫一行代碼,分分鐘搞定!

超酷!爬取GitHub上幾萬的Python庫

還有很多包括視頻我就不一一截圖了,需要這些資料的可以先關注小編,轉發評論,私信小編008或者006


分享到:


相關文章: