爬蟲是什么?
相信大家對爬蟲都不陌生,特別是做過網站的站長,這里也簡單跟大家解釋一下:
如果我們把互聯網比作一張大的蜘蛛網,數據便是存放于蜘蛛網的各個節點,而爬蟲就是一只小蜘蛛,
它會沿著網絡抓取自己的獵物(數據)爬蟲指的是:向網站發起請求,獲取資源后分析并提取有用數據的程序;
從技術層面來說就是通過程序模擬瀏覽器請求站點的行為,把站點返回的html代碼/JSON數據/二進制數據(圖片、視頻) 爬到本地,進而提取自己需要的數據,存放起來使用。
舉個栗子:
比如我的工作是新媒體小編,現在要學寫作取標題,最簡單的方式就是去目標公眾號/網站等復制他們的標題到Excel來進行分析。
這樣的傻瓜式操作很簡單,但是效率很低,也很慢,而最高效的方式是什么呢?就是通過爬蟲直接爬取我需要的標題,而這個過程僅僅需要1分鐘。
廢話不多說,跟我一起來操作吧。
01
準備工作
在你的瀏覽器安裝:“webscraper”擴展,直接在瀏覽器應用市場下載即可,推薦使用chrome瀏覽器。
安裝好之后,啟用它。
進入你要爬取數據的頁面,以下我將以知乎來為大家舉例。比如我要爬取知乎小管家的所有文章標題,那么就先進入到知乎小管家的文章頁面。
然后,按下鍵盤的F12,進入開發者工具。
當然有些瀏覽器不同,可能F12進入不了,你可以使用以下快捷鍵:
win:Ctrl+Shift+I
mac:Cmd+Opt+I, 或者 Tools / Developer tools
或者直接在頁面按鼠標右鍵選擇審查元素,或者是檢查。比如我的是chrome瀏覽器,就是檢查。
然后調出瀏覽器開發者工具。
默認是在瀏覽器的右側,點擊右上角三個點,選擇第三個把他放到瀏覽器下方。
02
正式開始
第一步:創建sitemap
在開發者工具的菜單當中選擇最后一個,也就是你剛剛安裝的那個擴展:
然后在第二行里選擇第三個,也就是:Create new sitemap
然后選擇Create Sitemap
創建好之后會出現兩個選項讓你填寫:
sitemap name:這個可自定義,比如我要抓取的是文章標題,那么我就填寫biaoti就可以了。
start url:這個是你要爬取頁面的URL,也就是我要把知乎小管家文章頁面的鏈接復制到這里。
以下是我填好后的:
然后點擊Create Sitemap,第一步就完成了。
第二步:添加 selector
點擊add new selector
然后又出來一些選框:
id:因為我們要爬取的是標題,所以就填:“title”。type:這是個選項,一樣,因為我們要爬取的是標題,也就是文本,所以這里我們就選默認的Text。Selector:最重要的一步,待會演示。Multiple:打上勾Regex:不用管Parent Selectors:不用管
以下是我填好的:
剛剛還有Selector這個最重要的一步我們沒有做,現在我們來說說它,這里有3個選項,分別是:
1、Select = 選擇器
2、Elementt preview = 預覽
3、Data preview = 數據預覽
其實大家如果看得懂英文就知道它的意思了。
現在我們開始操作,首先點擊Select選擇器,然后你會發現多出來一個窗口:
這個時候你會發現當你的鼠標移動到頁面內容的時候會發生變化,我們把它移動到標題,然后點擊一下標題,點擊完成之后在點擊下一個就OK了。
也就是我們一共要點擊兩下標題,第一個和第二個。點完之后是這樣的:
你看,雖然我只點了第一個和第二個,但是它下面的所有標題都被選中了。
這里還要跟大家說明一下:
點第一個標題也可以說是定位,也就是說爬蟲要從哪里開始抓取,比如上圖,我也可以從第二個標題開始選擇,然后點一下第三個標題,然后底下的標題就全部被選擇,只有第一個不會被選中。
但它不能選擇從哪里結束,只能定位開始。
標題全部被選中后,然后我們點擊窗口的 Done selecting!
然后這一步我們就完成了,但是別忘了剛剛我們說到的Selector這里還個預覽,也就是:
Elementt preview
Data preview
我們點擊Elementt preview你會發現頁面中的標題又全變紅了,也就是選中了,再次點擊就是取消預覽;然后點擊Data preview你會發現:
當然這個只是窗口預覽,但其實如果只是標題的話,我們可以直接在這個窗口全部復制然后粘貼到電腦里。
但是還是建議大家下載下來哈。預覽沒問題之后,點擊Save selector保存:
第三步:開始抓取
我們再次點擊第二行菜單里的Sitemap biaoti,然后選擇Scrape。
然后又會跳出來最后兩個數據讓你填寫;
但是這個我們不用管它,默認的2000就好,直接點擊Start scraping開始抓取。
也解釋一下它的意思:
它意思是抓取的間隔時間以及頁面加載延遲時間。
比如我要抓取知乎的多個頁面,那就要設置間隔時間,這樣可以避免被知乎的反爬蟲監測到。
但如果你不設置間隔時間的話,一秒鐘訪問一個網站幾十次甚至上百次,這很明顯不是人為的,所以很容易觸發該網站的反爬蟲機制,后果就是會封掉你IP地址,你就再也別想在你的電腦上訪問知乎這個網站了,更別提繼續抓取了~
還有一點也要跟大家說明一下,你在抓取該網站數據的時候,你也會占用該網站的帶寬,如果這個網站的帶寬允許同時100個人訪問,但你一秒鐘就給它訪問了幾十上百次,可能會導致該網站其他用戶無法打開頁面,或者加載延遲等問題。
這會大大對該網站造成非常不好的影響,所以,各位可不要用這個去攻擊別人的網站啊。雖然也沒什么卵用~
設置好時間之后我們點擊Start scraping開始正式抓取。
這個時候它會彈出一個窗口,我們不用管它,然后大概幾秒鐘后就抓取完了。
第四步:導出至本地
我們再次點擊 Sitemap biaoti 選擇 Export data as CSV
然后點擊 Download now!下載。
然后我們用Excel打開:
怎么樣,是不是很簡單,如果你會英語,就更好理解了。