2015年7月6日 星期一

[Python][教學] 網路爬蟲(crawler)進階實務 -- 破解十八禁網站(三)

enter image description here

一般瀏覽網頁的時候,遇到十八禁的網站都會套跳出像這樣的警示畫面,我們當然很習慣的點下已滿十八歲就能閱讀內容.但是對於爬蟲來說卻不見得那麼簡單.


PTT八卦版為例,當你想透過爬蟲丟requst給網站的話,卻會收到這樣的回覆
 
enter image description here

原因在於網頁在接收到你的request時,會偵測你有沒有曾經點過已滿十八歲的按鈕,如果你沒有相關的cookie紀錄會判定你未滿十八歲.這時候我們就必須自己製造一個cookie給爬蟲程式來通過檢驗.首先先來先來看一下按了已滿十八歲按鈕後會發生什麼事情.透過網頁檢視工具:

enter image description here

可以看到進入主要頁面時,我們的response夾帶了一個over18=1的cookies

enter image description here

回到爬蟲中,Scrapy要夾帶cookies的方式是複寫start_requests方法,將cookies埋在裡面:
 
enter image description here

就可以騙過檢查網頁,直接抓裡面的資料囉~