芝麻HTTP:如何尋找爬蟲入口,芝麻尋找爬蟲入口
尋找爬蟲入口
1 、本次任務的入口 這個爬蟲的更好的入口就是我們平常使用的搜尋引擎。搜尋引擎雖然有很多種,但是其實都是在幹一件事,收錄網頁,處理,然後提供搜尋服務。在平時使用的過程中,我們通常都是直接輸入了關鍵詞就直接搜尋了,但是其實還有很多的搜尋技巧, 比如對於這個任務來說,只要我們這樣搜尋,就可以得到我們想要的資料了。
site:zybang.com
現在我們在百度,Google, 搜狗, 360,必應裡都分別試一下:
從上面的圖中可以發現返回的資料量都在百萬甚至是千萬層級。
所以把這些資料作為這個任務的入口,顯然是更好的。至於說應對反爬蟲的措施,那就考驗個人的基本功了。
2、其他的入口 (1) 移動端入口 通過網站的移動端入口進行擷取資料,可以更好更快速的擷取資料。
尋找移動端入口的最簡單的方式就是用開啟Google瀏覽器的開發人員模式以後,點擊下面的手機樣子的東西,然後在重新整理一下就可以了。
這種方法也不是萬能的,有的時候我們可以把網址發到我們的手機上,然後手機瀏覽器開啟,看一下在手機上面顯示的格式是否與電腦上的不一樣,如果不一樣的話,就可以再把手機瀏覽器的網址複製一下發到電腦上了。
(2)網站地圖 網站地圖是指可方便網站管理員通知搜尋引擎他們網站上有哪些可供抓取的網頁, 所以通過這些網站地圖可以更高效更方便的擷取一些作為下一級入口的網址。 (3)修改網址中的數值 首先申明,這個技巧不是萬能的。 這個技巧主要是通過對網址中的某些欄位的數值來從一次請求中最大限度的擷取所需的資料,減少請求數,也就減少了被網站封鎖的風險, 也就可以提高爬蟲的效率。下面以一個例子為例: 當爬取QQ音樂的某一個歌手的全部音樂資料時,抓包獲得的格式如下:
https://xxxxxxxxx&singermid=xxxx&order=listen&begin={begin}&num={num}&songstatus=1
返回的資料包如下:
其中的一些欄位值被我以xxx代替了,請注意這裡的num欄位,通常一個歌手的歌比較多時,資料都是通過下一頁展示出來的,所以這裡的begin就應該是每一頁第一條的對應的值,而num則是這個頁面有多少條資料。通常,我們可以一頁一頁的擷取資料, QQ音樂的預設值是30。那麼我們是不是非得至少請求4次才可以獲得完整資料呢?
當然不是,其實這個時候,我們可以自己試一下改變網址中的一些數值時,返回的結果是否會發送變化。在這裡,我們就改變num與begin的值,其中設定num就是某一個歌手所有的歌曲數量的值,begin為0,這個時候再重新請求修改之後的網址,就可以得到下面的資料:
從上面可以看到,返回了96條資料。
這樣,我們可以通過2次請求擷取到所有的資料了。第一個請求擷取total數目,然後再修改網址重新請求,這樣就可以獲得所有的資料了。 類似的欄位還有pagesize。
總結 上面的這些尋找爬蟲入口的小技巧可以使我們事半功倍,有的時候可以以最少的代價擷取到資料。