本文概述
尽管由于通常我们的文章都是技术性的, 所以本文违反了我们的代码世界的标准, 但它似乎是学习如何编写非常简单的自动化脚本的一个很好的例子。许多用户使用Follow x跟随来获得很多关注者, 但是, 当你将帐户授予”社交网络经理”, 而最终执行上述的Follow x跟随时, 由于明显的原因, 许多用户会感到愤怒。
前几天, 试图在朋友的帐户上撤消此类操作的决定决定在JS中编写一个简单的bot脚本, 该脚本自动单击该帐户遵循的用户的取消关注按钮, 但是当我发现Instagram发出请求时, 并不感到惊讶每个”取消关注”操作之间的限制。即使使用移动设备并手动执行操作, 你也无法每小时取消关注60个以上的用户(尝试这样做将导致403响应以取消关注):
注意
即使使用脚本, 总有一天你会在控制台中看到此错误。你将需要等待10至15分钟(或更少), 然后才能再次运行脚本。
这就是为什么需要修改脚本以便每分钟取消关注用户的原因, 所以它不会被阻止(有时也会被阻止, 你需要等待10分钟才能再次运行脚本), 我想与他人分享你这个简单的脚本。
这种方法的优点
- 你可以在后台运行脚本, 并让其在办公室运行一整天, 而不必手动取消关注每个用户。
- 计算机为你取消关注, 你只需要在浏览器中注入脚本即可。
局限性
- Instagram拥有一种针对”机器人”和其他自动化脚本的已知保护算法, 例如我们正在编写的脚本(即使是人类, 如果你尝试立即从应用程序或桌面上手动取消超过15位用户的关注, Instagram也会施加限制) )。要跳过脚本并防止出现任何错误, 逻辑是每60秒单击每个”取消关注”按钮。这将允许你取消关注对话框可以列出的许多用户。
- 这是非常耗时的, 因为你要为每个要取消关注的用户花费一分钟。
取消关注脚本
以下脚本是完成此操作的脚本, 其工作原理如下:
var jqueryScript = document.createElement('script');
jqueryScript.src = "//code.jquery.com/jquery-3.3.1.min.js";
jqueryScript.onload = function(){
// Important: change those text according to the text of the following button in your language
// e.g in Spanish it would be "Seguido"
let unfollowButtonText = "Following";
// Recently, a new confirmation dialog appears asking if you really want to unfollow the user
// change this text as well
// e.g in Spanish it would be "Dejar de seguir"
let unfollowConfirmationText = "Unfollow";
// Prepare jQuery Selector for buttons that contain "Following"
let selector = `button:contains('${unfollowButtonText}')`;
// You need to wait 60 seconds after every unfollow, otherwise you will
// be blocked temporary by the Instagram API and you'll see a 403 error in the network !
let currentTime = 0;
let step = 60 * 1000;
// Query the button
let unfollowButtons = $(selector);
// Total of buttons found
let totalUnfollowButtons = unfollowButtons.length;
if(!totalUnfollowButtons){
alert("Error: no Following buttons found, maybe change the text of the button?");
}
// Iterate on every button
unfollowButtons.each(function(index){
let button = $(this);
setTimeout(function(){
(function(i){
console.log(`Unfollowing ${i} of ${totalUnfollowButtons}`);
if(i == totalUnfollowButtons){
console.log("Script finished succesfully !");
}
button.trigger("click");
// Important: recently, a confirmation dialog was added when you click
// on unfollow, so simply click the confirmation button as well to unfollow the user
setTimeout(function(){
var btn = $(`button:contains('${unfollowConfirmationText}')`);
if(btn){
btn.trigger("click");
}
}, 100);
})(index + 1);
}, currentTime);
currentTime += step;
});
};
// Inject Script !
document.getElementsByTagName('head')[0].appendChild(jqueryScript);
如何使用它
只需将其粘贴到浏览器的JS控制台中, 就可以在几秒钟内完成上一个脚本的执行。如果你不是开发人员, 我们将指导你完成以下过程:
1.使用Google Chrome在桌面/笔记本电脑中打开Instagram
第一步, 你需要在台式机的官方网站上打开instagram帐户, 你可以在其中打开台式机版的Chrome。登录后, 继续下一步。
2.打开浏览器Devtools
打开Google Chrome, 然后按CTRL + Shift + I或在Instagram网页上单击鼠标右键, 然后从上下文菜单中选择”检查元素选项”以打开开发工具, 以打开开发人员工具。出现后, 转到”控制台”选项卡。让此窗口打开, 因为我们将在步骤4中将脚本注入此处。
3.打开关注列表对话框
如前所述, 脚本的逻辑是脚本将自动在你关注的用户列表上单击用户的每个”取消关注”按钮。此列表是一个对话框, 只需单击个人资料的” xx以下”按钮即可显示该对话框:
这应该会打开一个你当前正在关注的用户的对话框:
现在你有了要关注的用户对话框, 你需要滚动并显示要在脚本执行期间取消关注的所有用户。所有带有”跟随”的按钮都将被单击, 因此该对话框需要始终打开(最近在Instagram中添加了一个新的确认对话框, 因此脚本也将单击该按钮)。接下来, 你只需要注入脚本。
4.注入脚本
将代码复制到文章开头, 然后将其粘贴到控制台中, 然后按Enter键以执行代码, 然后取消跟踪过程将开始:
该脚本会在控制台中自动显示进度, 并说出进程何时完成或是否有任何错误(请阅读初始警告)。
开心的跟随!
评论前必须登录!
注册