Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??
#!/usr/bin/perl -w use strict; use LWP; use Term::ReadKey; use Getopt::Std; use HTML::TokeParser; use HTTP::Request::Common; $| = 1; use vars qw(%opts); getopts('p:u:s:h',\%opts); my ($user,$passwd,$help) = parse_args(\%opts); USAGE() and exit unless $user and $passwd and not $help; use constant URL => 'http://www.perlmonks.org/'; my $SEP = $opts{s} || "\t"; my $ua = LWP::UserAgent->new; $ua->agent('personal_nodlet_extractor/1.0 (' . $ua->agent .')'); # log in and access your User Setting page in raw format my $request = POST(URL, Content => [ op => 'login', user => $user, passwd => $passwd, node_id => 1072, displaytype => 'raw', ] ); my $response = $ua->request($request); die $response->message unless $response->is_success; # pass the HTML content to TokeParser my $content = $response->content; my $parser = HTML::TokeParser->new(\$content); # 'fast forward' until we find "<b>Personal Nodelet</b>" while ($parser->get_tag('b')) { last if 'Personal Nodelet' eq $parser->get_text; } # these are the [links|droids] we are looking for while (my $tag = $parser->get_tag('a')) { if ($tag->[1]->{href} =~ /[^t]node_id=(\d+)/) { print $1 . $SEP . $parser->get_text . "\n"; } } sub parse_args { my %opt = %{+shift}; if (exists $opt{'p'} and not defined $opt{'p'} and defined $opt{'u' +}) { print "Enter password: "; ReadMode 'noecho'; chomp($opt{'p'} = ReadLine 0); ReadMode 'normal'; } return @opt{qw(u p h)}; } sub USAGE { print "USAGE: $0 -u user [-s separator] -p password\n" } =pod =head1 NAME extract_personal_nodelet.pl - LWP script =head1 DESCRIPTION This is a simple script that uses LWP and HTML::TokeParser to access your User Settings page and extracts your Personal Nodelet links. =head1 SYNOPSIS for *nix: ./extract_personal_nodelet.pl -u uname -s : -p for win32: perl extract_personal_nodelet.pl -u uname -s : -p Invokes the script for the specified username and use a colon as the record separator. The script will prompt you for your password if you do not specify it. The contents would look something like this: 24270:Permutations and combinations 25730:Life in the land of OOP, and I'm confused. 17890:Shift, Pop, Unshift and Push with Impunity! 32005:Apache::MP3 34786:Why I like functional programming The default record seperator is a tab. I recommend you use it since just about any character is fair game for a node title. =cut

In reply to Personal Nodelet Extractor by jeffa

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others studying the Monastery: (11)
    As of 2015-07-30 17:26 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









      Results (273 votes), past polls