天天看點

【崔慶才教材】《Python3網絡爬蟲開發實戰》3.4爬取貓眼電影排行代碼更正(繞過美團驗證碼)

前情提要

最近有七八個小夥伴私信問我說崔大神的《Python3網絡爬蟲開發實戰》教材中 “3.4爬取貓眼電影排行” 一節的代碼目前不能用。

首先附上崔大神的github源碼:3.4爬取貓眼電影排行

一、貓眼電影反爬更新

下圖是崔大神的代碼:

【崔慶才教材】《Python3網絡爬蟲開發實戰》3.4爬取貓眼電影排行代碼更正(繞過美團驗證碼)

估計是太多人學習爬蟲拿貓眼電影練手了。貓眼增強了反爬,目前headers中隻加入‘User-Agent’的話,會跳轉到美團的驗證碼界面。

【崔慶才教材】《Python3網絡爬蟲開發實戰》3.4爬取貓眼電影排行代碼更正(繞過美團驗證碼)

此處小白們不必硬剛驗證碼(大神們請随意)。

我們隻需要在headers中加入‘cookie’字段舊不會跳轉到驗證碼頁了。

在chrome中打開貓眼榜單頁面,按F12,出現下圖界面:

【崔慶才教材】《Python3網絡爬蟲開發實戰》3.4爬取貓眼電影排行代碼更正(繞過美團驗證碼)

把‘cookie’字段添加到headers中即可,代碼示例如下:

headers = {
		'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
        'Cookie': '__mta=208959789.1585106920033.1593509077842.1593509107607.47; _lxsdk_cuid=1710fbc224bc8-0048503dcb84eb-f313f6d-1a298c-1710fbc224cc8; mojo-uuid=bc73035186bc203e1e0a1a9d69cf0c8f; uuid_n_v=v1; uuid=010A4750BAB111EA977B252D9527D646FCA82B59C6B54FB3934C361D719643F2; _csrf=ab7e60b187089a5c797755f042abdbd14eed1760f8308dc455570ee9ea4edfa2; mojo-session-'
}
           

然後就可以正常通路了

【崔慶才教材】《Python3網絡爬蟲開發實戰》3.4爬取貓眼電影排行代碼更正(繞過美團驗證碼)

二、http協定錯誤

有的小夥伴就算加入了‘cookie’,還是不能擷取到正常頁面,還是會跳轉到‘驗證中心’,也就是美團的驗證碼界面。那麼請檢查一下代碼這裡:

下圖是崔大神的代碼:

【崔慶才教材】《Python3網絡爬蟲開發實戰》3.4爬取貓眼電影排行代碼更正(繞過美團驗證碼)

簡單介紹一下http和https的差別:

HTTP的連接配接很簡單,是無狀态的。

HTTPS協定是由SSL和HTTP協定建構的可進行加密傳輸、身份認證的網絡協定。

HTTPS要比HTTP協定安全。

更多更詳細的差別和聯系請檢視:Tyler_Zx介紹的 Http和Https的差別(面試常考題)

我們隻需要把url改為https即可:

遇到此問題的小白們不妨一試。