使用selenium+java模拟登陆今日头条时需要手机验证码登陆,第二次怎么免输入信息登陆?

发布于 2021-12-07 05:47:53 字数 105 浏览 909 评论 3

在使用selenium爬取今日头条时,想登陆之后爬取个人收藏内容。

第一次是通过手机验证码登进去,需要多次登陆,第二次如何可以不登陆,直接就爬取信息?

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

带上头具痛哭 2021-12-08 18:19:51

失效时间过短,不可取。

做个少女永远怀春 2021-12-08 07:23:38

第一次登录之后,点击到个人页面,F12之后,F5,查看Application的COOKIES。

将登录需要的COOKIES存储进去,刷新界面。就可实现自动登录。

Cookie c1 = new Cookie("sso_login_status", "1");
//添加cookie
        webDriver.manage().addCookie(c1);

皇甫轩 2021-12-07 18:27:45

首次通过手机验证码登录后,获取cookie,并将cookie保存到map中。

在主程序中定义map:

public static Map<String, String> cookies;

public static boolean first;

JRTT.first首次为true,之后为false;

mian方法中:

cookies = new HashMap<String, String>();

在selenium中:

(手动登录后获取当前cookie)

// 获得cookie
        Set<Cookie> cookie = webDriver.manage().getCookies();

        if (JRTT.first) {
            // 保存登录的Cookies
            for (Cookie ck : cookie) {
                JRTT.cookies.put(ck.getName(), ck.getValue());
            }
        }

将原有缓存清空,添加保存的缓存

// 删除所有cookie
        webDriver.manage().deleteAllCookies();

        Cookie c;
        // 将第一次登录的cookie保存
        for (Map.Entry<String, String> entry : JRTT.cookies.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            c = new Cookie(key, value);
            webDriver.manage().addCookie(c);
            // System.out.println("key=" + key + " value=" + value);
        }

        // 刷新页面
        webDriver.navigate().refresh();

cookie填进页面中。多次循环,不用手动输入。只需在程序首次执行时输入。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文