爬蟲軟體|軟體的簡單使用(二)
繼續我們的推文~
大家好,我是廈門大學王亞南經濟研究院大一學生。今天我將結合我們的項目來介紹一下GooSeeker 的用法。(後面我還將為大家介紹一些python爬蟲的知識,例如抓APP數據,HTTP protocol, requests庫等等,歡迎大家持續關注~~)
繼前天的推文之後,GooSeeker的創始人@華天清對我們項目組在設計爬蟲上提供了不少有益的幫助(比如調整設計方案等),對此我們非常感謝~~~
由於本人不是計算機相關專業的學生,所以如果在講解過程中出現錯誤,還望各位不吝賜教。本文中如果有疑問,請參考官方教程(作為教程,文章可能比較的長,希望大家可以耐心閱讀。O(∩_∩)O謝謝
註:非商業轉載註明作者即可,商業轉載請聯繫作者授權並支付稿費。本人已授權「維權騎士」網站(http://rightknights.com)對我在知乎發布文章的版權侵權行為進行追究與維權。
------------------------萌萌噠的分割線------------------------
Object:抓取京東網站所有食品的名稱價格以及鏈接
實現工具:GooSeeker以及 FireFox Browser
Designing idea:在http://channel.jd.com/food.html 的鏈接中獲取食品所有二級目錄(例如牛奶,巧克力,休閑零食等等)的URL,為第二層抓取生成線索,然後在第一層獲取的URL中抓取所需的商品信息。
一. 第一層抓取:
(1)
首先先創建文件名,創建完文件名之後可以點擊查重按鈕檢驗主題名是否重複。然後在頁面的左上角輸入網址名讓其載入,會在下方的browser界面中出現你所輸入的網址的界面。(2)
在這第一層抓取中同樣分為兩級,第一級是圖示左半部分的內容(例如,進口食品,地方特產等等),第二級是是圖示左半部分的內容(例如,牛奶,餅乾蛋糕等等),為了保證爬下來的內容的完整性,我們需要設計兩層整理箱(整理箱相當於一個container,用來儲存data)(3)在浮動的工作台中創建兩層整理箱,第一層用來實現第一級檢索,第二層用來實現第二層檢索(點擊包容就可以啦~~)。
(4)然後在工作台下部的browser中點擊你想要獲得的信息(它會自動定位滴~)。這些標籤(實際上是HTML 的標籤)其包含的內容信息會在工作台下半部分顯現出來:
點擊你想要抓取的信息(例如:牛奶)網頁標籤中會出現如下的內容:
href 表示的的是網頁的鏈接,點擊右鍵,選擇內容映射-----鏈接,同時勾選下級線索點擊href下方的text,點擊右鍵,選擇內容映射---------名稱
會自動將信息mapping到內容(二級整理箱)的名稱和鏈接
(5)實現樣例複製:
在HTML 中找出上一個節點(就是其所屬於的並且有一系列與它parallel的標籤,比如說這裡的A標籤的父節點是LI 標籤)實現樣例複製。
點擊類別勾選啟用,找到需要實現樣例複製的第一個LI標籤,點擊右鍵------樣例複製映射---------第一個,再找到第二個 LI 標籤(編號1416)重複同樣的動作完成樣例複製映射。Follow上述操作實現整理箱1 的複製映射。
(6)
切換到爬蟲路線界面,將目標主題名換成第二層抓取所需要的名字。
(7)測試結果:
上述反覆的映射步驟實際上就相當於在python中使用bs4庫parse the data from the HTML, 而第一步輸入網址在python中 使用requests庫發送Http protocol 的行為。關於python爬蟲的知識在後期會有更多的說明,歡迎大家持續關注~~~二. 第二層抓取:
上述第一層抓取為第二層抓取提供了線索,第二層抓取將具體實現獲取京東商品的價格鏈接以及名稱。首先在上述獲取的線索中選取一個鏈接(例如牛奶 http://list.jd.com/list.html?cat=1320,5019,12215)
(1)在MS謀數台中新建一個任務,任務名是第一層抓取中的下級線索的名稱。
(2)創建整理箱,整理箱中包含的內容是你所需要抓取信息的名稱。
(3)在工作台下部的browser中點擊一個食品的信息(價格,評論數等等),會在上方的HTML 中自動定位。結合工作檯面板下部的文本內容以及 HTML屬性進行mapping(直接點擊你想獲取的信息,會進行自動定位然後直接映射就好~~~)(4)找到這個標籤的父節點(在這裡還是LI)進行樣例複製。Follow 上文提到的步驟就好。
(5)測試一下:
(6)實現翻頁循環:
在python中實現翻頁的基本方法是找到下一頁鏈接的span標籤或者構造出新的URL,而在 GooSeeker 實現的方法更為簡單。
跳轉到爬蟲路線工作台---------點擊新建-----------選擇線索類型,設置翻頁線索時通常選擇記號線索-----------勾選連貫抓取,表示在執行抓取任務時,爬蟲可以在抓取完當前頁面後直接跳轉到下一個頁面進行抓取。
在網頁上點擊翻頁標誌「下一頁」,點擊對應text節點會在顯示工作台中顯示。
在網頁結構窗口中找到,對應節點後,即開始進行線索映射。然後找到「下一頁」所在的區塊,進行定位,一般會儲存在span標籤中。點擊存規則,這樣抓取京東食品信息的規則就寫好啦~~~三. 運用寫好的規則抓取數據
呼出DS打數機,先進行第一層抓取,再進行第二層抓取。
爬蟲時配置瀏覽器選項中的載入-圖片和插件可以去除,否則會影響速度,當然也可以利用爬蟲群,這裡不再贅述 (http://www.gooseeker.com/doc/article-197-1.html)附上鏈接大家可以自行查看~~~~
下面是部分抓取的結果:~~~
- 總的來說如果不是對效率有特別大的要求,GooSeeker 基本可以勝任絕大多數的爬蟲任務,而且上手也是蠻容易滴~~~~
------------------------我是萌萌噠的分割線------------------------
更多項目介紹, 請關注我們的項目專欄:Chinas Prices Project - 知乎專欄
項目聯繫方式:
- 項目郵箱(工作郵箱):zhangguocpp@163.com
- 知乎:@iGuo@Suri(項目負責人) @林行健@Dementia (技術負責人)@張土不 (財務負責人)@好大一棵樹(運維負責人)
推薦閱讀:
※數據採集技術指南 第一篇 技術棧總覽
※校長,我要上車——python模擬登錄熊貓TV
※從零開始寫Python爬蟲 --- 3.1 Selenium模擬瀏覽器
※Trip: 給Requests加上協程,一百份網路請求一份時間
※如何在瀏覽器中高效抓包分析數據?
TAG:爬虫 |