前情提要
首先附上崔大神的github源碼:3.4爬取貓眼電影排行
畢竟此段代碼完成時間較早,截至2020.7.1日,發現了此段代碼中兩個需要修改的地方。
希望能給學習崔大神的小白一些幫助,希望大家有個好前途。
一、貓眼電影反爬更新
下圖是崔大神的代碼:
估計是太多人學習爬蟲拿貓眼電影練手了。貓眼增強了反爬,目前headers中只加入‘User-Agent’的話,會跳轉到美團的驗證碼界面。
此處小白們不必硬剛驗證碼(大神們請隨意)。
我們只需要在headers中加入‘cookie’字段舊不會跳轉到驗證碼頁了。
在chrome中打開貓眼榜單頁面,按F12,出現下圖界面:
把‘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-' }
- 1
- 2
- 3
- 4
然后就可以正常訪問了
二、HTTP協議錯誤
有的小伙伴就算加入了‘cookie’,還是不能獲取到正常頁面,還是會跳轉到‘驗證中心’,也就是美團的驗證碼界面。那么請檢查一下代碼這里:
下圖是崔大神的代碼:
簡單介紹一下http和https的區別:
HTTP的連接很簡單,是無狀態的。
HTTPS協議是由SSL和HTTP協議構建的可進行加密傳輸、身份認證的網絡協議。
HTTPS要比HTTP協議安全。
更多更詳細的區別和聯系請查看:Tyler_Zx介紹的 Http和Https的區別(面試常考題)
貓眼電影應該是關閉了http端口。
我們只需要把url改為https即可:
url = https://maoyan.com/board/4?offset=' + str(offset)
- 1
遇到此問題的小白們不妨一試。
希望大家都有個好前程。
轉自:https://blog.csdn.net/czczczzczc/article/details/107067371
