爬虫cookie获取神器推荐——EditThisCookie且魔改

内容简介:
1、使用EditThisCookie
2、魔改源代码来实现更加高效的cookie保存。

EditThisCookie是一个cookie管理器。可以添加,删除,编辑,搜索,保护,并阻止cookie等等操作,并且这个工具是开源的。
GitHub链接点击跳转

使用场景

对于爬虫玩家来说操作cookie是一件很繁琐的事情。
1、比如在复制一些HttpOnly为True 的cookie值的时。
2、比如想要修改cookie的值时,也不需要在进入浏览器调试工具去修改,或者是使用js代码修改。等等等奇奇怪怪的操作cookie场景

复制cookie

以百度指数为例,插件安装好后就可以在页面中打开,点开后需选择导出Cookie,就可以把cookie全部复制出来(包括设置了HttpOnly的字段)
在这里插入图片描述

编辑cookie

编辑也很简单,直接点开下面,然后修改内容保存即可

在这里插入图片描述

选项、屏蔽和锁定

这些高级选项可以在插件设置里面打开,然后去配置

在这里插入图片描述

善用工具,修改源码实现高效场景

一键拿到cookie的工具有了,那我们复制到的cookie是不是还要手动保存或者设置到某个地方去,这样的话就太低效率了,而且只能自己手动操作,如果你有n个网址要爬岂不是很麻烦,所以我想了一个方法,就是在复制Cookie的位置,添加一点小功能:比如发送一个请求?

接口在接收到之后就可以做一些动作,比如保存进redis。

首先,我们需要调试这个插件

右键那个小饼干,选择审查弹出内容

在这里插入图片描述
基本操作,定位这个复制cookie按钮的元素

在这里插入图片描述

然后就可以在事件监听器里面找到对应的函数

在这里插入图片描述

也可以直接全局搜索:$("#copyButton").unbind()

这个函数就是点击按钮,然后复制cookie动作,只需要在里面加一点请求代码,让它在获取到cookie前后发送一个请求

在这里插入图片描述

修改后的函数代码

    $("#copyButton").unbind().click(function () {
        // copyToClipboard(cookiesToString.get(cookieList)); // 源代码
        var cookie = cookiesToString.get(cookieList)
        copyToClipboard(cookie);

        // 插件下的请求代码~
        var queryOptions = {active: true, currentWindow: true};
        chrome.tabs.query(queryOptions, 
            function (tabs) {
                var url = new URL(tabs[0].url);
                var host = url.hostname
                var xhr = new XMLHttpRequest();
                // 127.0.0.1可以改成域名或者是服务器ip
                xhr.open("POST", "http://127.0.0.1:8088/cookie/upload", true);
                xhr.setRequestHeader("Content-Type", "Application/Json");
                // 这里的请求参数根据自己的场景去设定
                var sendData = {"cookie": cookie, "host": host};
                xhr.send(JSON.stringify(sendData));
            }
        );

        // 下面代码不需要动
        data.nCookiesExported += cookieList.length;
        $("#copiedToast").fadeIn(function () {
            setTimeout(function () {
                $("#copiedToast").fadeOut();
            }, 2500);

        });
        $(this).animate({ backgroundColor: "#B3FFBD" }, 300, function () {
            $(this).animate({ backgroundColor: "#EDEDED" }, 500);
        });
    });

保存好后点击复制cookie的按钮,就可以在通过网络抓包看到成功发送了请求

在这里插入图片描述

那么我们最终的效果就可以直接保存进redis(服务器接口自己设定)

在这里插入图片描述
最后把修改后的js代码替换进插件源文件内就大功告成了。
还可以把这个插件直接给运营的同学使用,他们自己登陆后台自己一键发送cookie到服务器,再也不需要自己复制cookie保存了。

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐