美文网首页蛛蛛爬大数据 爬虫Python AI Sql爬虫专题
爬虫微博模拟登陆-从移动端到PC端

爬虫微博模拟登陆-从移动端到PC端

作者: 极致简洁 | 来源:发表于2017-11-06 19:54 被阅读444次

爬虫登陆微博,相信是诸多爬虫爱好者必须跨过得一道坎。这不,这几天我也在研究如何能够快速而简洁得实现登陆功能。
当然,前期工作一定要做好,我先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':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36',
         'Referer':'https://passport.weibo.cn/signin/login?entry=mweibo'}

cookies={'_s_tentry':'news.ifeng.com',
        'UOR':'news.ifeng.com,widget.weibo.com,tech.ifeng.com'}

url='https://passport.weibo.cn/sso/login'

username=input('pls input weibo ID: ')
pwd =input('pls input weibo password: ')


fromdata={'username':username,'password':pwd,
        'savestate':'1','r':None,'ec':'0','pagerefer':None,
        'entry':'mweibo','wentry':None,'loginfrom':None,
        'client_id':None,'code':None,'qq':None,'mainpageflag':'1',
        'hff':None,'hfp':None}

with Session() as s:
    s.headers.update(headers)
    resp = s.post(url,data=fromdata)
    cross_domain_list = json.loads(resp.text)['data']['crossdomainlist']
    formatUrl(cross_domain_list)
    s.get(cross_domain_list['weibo.com'],cookies=cookies)
    #通过cross_domain 获取PC端的登陆状态,此时可以以登录状态直接访问PC端的页面,从而绕过诸多加密校验
    s.get(cross_domain_list['sina.com.cn'])
    s.get(cross_domain_list['weibo.cn'])
    s.headers.update({'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'})
    resp=s.get('https://weibo.com/')
    with open('webo.html','wb') as f:
        f.write(resp.content)

我宣布:微博的世界, 爬虫大军来啦!
注:如果需要锻炼JS解析能力,建议还是走PC端模拟登陆。

相关文章

  • 爬虫微博模拟登陆-从移动端到PC端

    爬虫登陆微博,相信是诸多爬虫爱好者必须跨过得一道坎。这不,这几天我也在研究如何能够快速而简洁得实现登陆功能。当然,...

  • 新浪微博PC端模拟登陆

    本来给自己定了个2018的目标,平均每月写两篇文章,现在已经快三月了,第一篇稿子才憋出来,惭愧呀,直入主题吧,今天...

  • 头条发家与困局

    从百度说起 从PC端到移动端,阿里电商场景转到移动端最顺利,腾讯因为微信,堪称最幸运,百度则是最倒霉的一个 移动端...

  • 利用spy-debugger进行移动端真机调试

    平常我们在进行移动端开发的时候都是用PC端的手机模拟器进行调试。但是,PC端调试和最终在移动端呈现的效果仍然存在差...

  • 移动端css(三)

    目录: 1 移动端特点 2 百分比布局 3 Flex布局 一 移动端特点 • 移动端和PC端网页不同点• 谷歌模拟...

  • 【微信营销】第九十四招

    微信与微博的差异化定位 微博是基于PC端研发出来的,在此基础上开发 了移动客户端;而微信则是基于移动端研发出来的,...

  • 各大高清卫视频道在线直播【ivi测试】&转载自【蚂蚁号】

    CCTV-1高清 PC端移动端 CCTV-3高清 PC端移动端 CCTV-5+高清 PC端移动端 CCTV-6高清...

  • 做产品的那些事儿—登录注册

    自己挖的坑一定要让别人给填好! 一、登录从PC端到移动端 移动端的登录沿袭了很多PC端的经验,但也有其独特的演变。...

  • 处在不同阶段的app需要如何推广

    最近几年移动互联网发展迅猛,PC端流量不断向移动端转移,各家企业和微博名人纷纷转战移动端。本文主要谈的是处于不同阶...

  • 把页面从移动端转移到pc端

    适合把用户从移动端引导到pc端的场景:移动端浮层提示转移到pc端体验更好,点击可以打开扫二维码的界面,提示扫描 *...

网友评论

    本文标题:爬虫微博模拟登陆-从移动端到PC端

    本文链接:https://www.haomeiwen.com/subject/chqrmxtx.html