LinkedInで送信したリクエストをキャンセルするバッチ書いた
LinkedInのリクエスト送信でうっかりやっちまったので取り消すバッチを書いた。
送ったリクエストをすべて取り消す。
後述のとおり、承認済みのリクエストは取り消せないので、全自動というわけではない。
要perl、WWW::Mechanize。
$ perl linkedin_withdraw
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env perl | |
use strict; | |
use warnings; | |
use WWW::Mechanize; | |
my $email = shift; | |
my $password = shift; | |
my $mech = WWW::Mechanize->new(); | |
$mech->get('https://www.linkedin.com/uas/login'); | |
$mech->submit_form( | |
form_id => 'login', | |
fields => { | |
session_key => $email, | |
session_password => $password, | |
}, | |
); | |
while (1) { | |
$mech->get('http://www.linkedin.com/inbox/invitations/sent'); | |
my @links = $mech->find_all_links( | |
url_regex => qr{displayMBoxItem} | |
); | |
last unless @links; | |
for my $link(@links) { | |
$mech->get($link->url()); | |
print $link->url() . ', '; | |
my $withdraw_link = $mech->find_link(url_regex => qr{withdrawInvitation}); | |
if ($withdraw_link) { | |
$mech->get($withdraw_link->url()); | |
print "withdraw\n"; | |
} | |
else { | |
print "\n"; | |
next; | |
} | |
} | |
} |
課題
「取り消し」リンクが見つからないことがある。
深追いはしてない。
承認済みのリクエスト
放置。
手動で消す必要がある。
自動で消すと漏れそうで怖かったので。
免責
たいしたテストもせずに書いたので、ご利用は自己責任で。