爬蟲福利:教你爬wap站

九茶發表於2016-03-06

前言:

玩過爬蟲的朋友應該都清楚,爬蟲難度:www > m > wap (www是PC端,m和wap是移動端,現在的智慧手機一般用的是m站,部分老手機用的還是wap),原因也很簡單,現在的網站越來越多地使用AJAX載入,反爬蟲機制也厲害。而像wap這種移動端網站限制比較小,網頁結構也簡單,我們獲取、解析起來都簡單很多,理論上速度也會快很多。所以如果允許的話我們儘量採用wap站抓取。
wap爬蟲


正文:

可能很多剛接觸爬蟲的朋友也想從wap爬取,但不知道怎麼做。例如用PC端瀏覽器開啟 weibo.cn 在登入的時候會自動跳回m域名網站,甚至用requests開啟網頁時會返回403錯誤。
這是因為網站伺服器會根據你的瀏覽器表頭判斷你是從哪個平臺傳送的請求,識別到PC端的請求會給你作相應處理。所以我們只需要修改一下瀏覽器表頭(User-Agent)即可。

如果是爬蟲程式,只需要帶上舊版手機瀏覽器的User-Agent即可(例如:”Mozilla/5.0 (Linux; U; Android 2.3.6; en-us; Nexus S Build/GRK39F) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1”)。

然而我們只看程式返回的response內容並不舒爽,我們還想在PC端用瀏覽器模擬手機瀏覽器那樣開啟網頁,怎麼辦?
我們只需要把PC瀏覽器的User-Agent改成手機的User-Agent即可。
例如我用的是Chrome50,修改瀏覽器的User-Agent有兩種辦法:一種是安裝一個外掛——User-agent Switcher,另一種是直接修改瀏覽器的表頭(僅當前頁面有效)。

User-agent Switcher外掛:
User-agent Switcher

直接修改瀏覽器的User-Agent:
Chrome修改User-Agent


PS:

就新浪微博而言,開啟一個微博使用者的個人首頁,wap站直接返回一個HTML檔案,並不需要載入JS和CSS,而且格式、編碼都很正常;而m站返回的內容格式比較混亂,用xpath解析不了(也有可能是我的程式有問題),而且使用的是Unicode編碼格式。
之前爬蟲一直在爬PC站,第一次看到m站返回來的內容時,竟有一種莫名的喜悅和衝動,哈哈。。在此特地分享出來,大家感受一下。



轉載請註明出處,謝謝!(原文連結:http://blog.csdn.net/bone_ace/article/details/50814101

相關文章