Grabbing LJ posts via OpenID authentication
Sometimes I love Perl. Thanks to Chris Ball, whose article on WWW::Mechanize I always seem to come back to for this sort of thing.
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; use HTML::TokeParser; use WWW::Mechanize; my $openid_server_url = 'https://the.earth.li/openid/'; my $openid_username = 'noodles'; my $openid_password = 'password'; my $openid_url = 'https://www.earth.li/~noodles/blog/'; my @ljusers = ('beccus', 'brrm', 'dpash', 'karen2205', 'lnr', 'padzor'); my $agent = WWW::Mechanize->new(); $agent->get($openid_server_url); $agent->form(1); $agent->field("username", $openid_username); $agent->field("password", $openid_password); $agent->click(); print "Logged into OpenID server.\n"; $agent->get('http://www.livejournal.com/openid/'); $agent->form(1); $agent->field("openid_url", $openid_url); $agent->click(); print "Logged into LiveJournal.\n"; foreach my $user (@ljusers) { print "Fetching feed for $user.\n"; $agent->get('http://www.livejournal.com/users/'.$user.'/data/rss'); open(RSSFILE, ">$user.xml"); print RSSFILE $agent->content; close(RSSFILE); }