前情提要
首先附上崔大神的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-'
}
然后就可以正常访问了
二、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)
遇到此问题的小白们不妨一试。
希望大家都有个好前程。