爬虫登陆微博,相信是诸多爬虫爱好者必须跨过得一道坎。这不,这几天我也在研究如何能够快速而简洁得实现登陆功能。
当然,前期工作一定要做好,我先google + 百度了一把市面上的微博登陆教程,发现基本上都是PC端的base64加密用户名,然后RSA加密拼接关键信息,最后组合成POST的from data 进行登陆。
摆在我面前的有两条路,一条走PC端,一条走移动端。鉴于PC端已经有详尽教程,此时,我决定走一走移动端的路子。基于以往经验,任何网站如果有移动端,那一定是非常容易进行爬取的。果不其然,移动端的微博登陆比我想象得还要简单,一个简单的POST即可搞定。
与此同时,在抓包的过程中,我亦发现,微博在移动端登陆以后,会先访问3个cross domain的网址来设置cookie。此刻,请大家注意,经过这三个cross domain的设置后,我们居然可以直接以登陆状态访问PC端。即在技术上以移动端作为翘板,完美避开PC端复杂的校验和加密。
曲线救国,古之人诚不我欺也!
Talk is cheap. Show me the code。
#-*- coding=utf-8
from requests import Session
import json
def formatUrl(urldict):
for key,value in urldict.items():
urldict[key]=value.replace("\\",'')
headers={'User-Agent':