芝麻HTTP:如何尋找爬蟲入口

尋找爬蟲入口       

        1 、本次任務的入口

        這個爬蟲的更好的入口就是咱們日常使用的搜索引擎。搜索引擎雖然有不少種,可是其實都是在幹一件事,收錄網頁,處理,而後提供搜索服務。在平時使用的過程當中,咱們一般都是直接輸入了關鍵詞就直接搜索了,可是其實還有不少的搜索技巧, 好比對於這個任務來講,只要咱們這樣搜索,就能夠獲得咱們想要的數據了。瀏覽器

site:zybang.com網站

如今咱們在百度,谷歌, 搜狗, 360,必應裏都分別試一下:搜索引擎

從上面的圖中能夠發現返回的數據量都在百萬甚至是千萬級別。spa

因此把這些數據做爲這個任務的入口,顯然是更好的。至於說應對反爬蟲的措施,那就考驗我的的基本功了。blog

  二、其餘的入口

      (1) 移動端入口

        經過網站的移動端入口進行獲取數據,能夠更好更快速的獲取數據。索引

        尋找移動端入口的最簡單的方式就是用打開谷歌瀏覽器的開發者模式之後,點擊下面的手機樣子的東西,而後在刷新一下就能夠了。開發

 這種方法也不是萬能的,有的時候咱們能夠把網址發到咱們的手機上,而後手機瀏覽器打開,看一下在手機上面顯示的格式是否與電腦上的不同,若是不同的話,就能夠再把手機瀏覽器的網址複製一下發到電腦上了。it

     (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。

總結

        上面的這些尋找爬蟲入口的小技巧可使咱們事半功倍,有的時候能夠以最少的代價獲取到數據。

相關文章
相關標籤/搜索