拼多多多账户免登录实现--cefsharp

背景简介---拼多多忠实用户的日常-砍一刀

    本人是个由于砍一刀入迷了,每次砍一刀还得召唤亲朋好友,怪麻烦的,后来想到自己弄几个账号相互砍,简直完美的想法。

作为菜鸟,第一个想到的肯定是看有没有网上写好的,无奈大家都是只分享成功的喜悦,不分享怎么实现的(伤心)。还是自己动手丰衣足食。再经历3天3页的奋战,终于实现出来了。这个思路可以实现大部分网站的登录

本人使用的winform+cefsharp实现的,关于cefsharp,这里就不多介绍了

1、初始化cefsharp--

        //初始化浏览器并启动
        public void InitializeChromium()
        {
            var settings = new CefSettings
            {
                Locale = "zh-CN"
            };

            settings.CachePath = AppDomain.CurrentDomain.BaseDirectory + "caches\\";
            settings.PersistSessionCookies = true;
            settings.PersistUserPreferences = true;

            Cef.Initialize(settings);

            chromeBrowser = new ChromiumWebBrowser("http://yangkeduo.com/");
            chromeBrowser.KeyboardHandler = new CEFKeyBoardHander();
            chromeBrowser.FrameLoadEnd += Browser_FrameLoadEnd;
            
            this.panel1.Controls.Add(chromeBrowser);

            chromeBrowser.Dock = DockStyle.Fill;
        }

     this.panel1 这是个容器,大家自行放到自己的容器就行了,我这里用的是panel容器

2、核心-切换账号的实现,切换账号其实就是切换用户的“cookie”

作为小白有必要解释一下cookie ,咱们平时登录拼多多,需要手机号发送验证码登录,登录后拼多多服务会给这个用户的颁发一个token,这个token就是访问拼多多的服务器的令牌,有他拼多多的大门就向你敞开。这个token是存在cookie里边的。

            //我这儿是一个表格,选中一行切换一个账号
            PddToken pddToken = this.dataGridView1.Rows[e.RowIndex].DataBoundItem as PddToken;
            if (pddToken == null)
            {
                return;
            }
            Cef.GetGlobalCookieManager().DeleteCookiesAsync(pddurl, "PDDAccessToken");
            Cef.GetGlobalCookieManager().DeleteCookiesAsync(pddurl, "pdd_user_id");

            var PDDAccessToken = new CefSharp.Cookie
            {
                Path = "/",
                Domain = "yangkeduo.com",
                Creation = DateTime.Today,
                Expires = DateTime.Today.AddDays(30),
                Name = "PDDAccessToken",
                Value = pddToken.PDDAccessToken
            };
            var pdd_user_id = new CefSharp.Cookie
            {
                Path = "/",
                Domain = "yangkeduo.com",
                Creation = DateTime.Today,
                Expires = DateTime.Today.AddDays(30),
                Name = "pdd_user_id",
                Value = pddToken.pdd_user_id
            };
            Cef.GetGlobalCookieManager().SetCookie(pddurl, pdd_user_id);
            Cef.GetGlobalCookieManager().SetCookie(pddurl, PDDAccessToken);

            chromeBrowser.Reload(true);

3、成功展示

首次初始化先登录一个账号,然后每次使用上边切换账号的方法就可以实现切换账号的啦。

最后,此次做这个小工具收获很多,刚开始走了很多弯路,比如设置cookie,从浏览器把整个cookie取出来,然后用cefshap设置进去,发现怎么都不好使,后来才发先设置的方法有问题。后来再大神的指示下换了中思路,先登录一个账号,这样cookie就有了,切换的账号的时候只需要修改一部分就可以了。

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值