Perl libcurl demo
Problem
You want to use libcurl, driven through Perl.
Solution
Beautiful for parse HTML and either extracted (screen scraping) content or performing actions based on results.
See the examples tab for this simple script, demonstrating the libcurl API for Perl.
Example
#!/usr/bin/perl$url="http://perl.coding-school.com/"; # set your url here
$|++;use Curl::easy;
# Init the curl sessionmy $curl= Curl::easy::init() or die "curl init failed!\n err: $!\n";
sub body_callback {
my ($chunk,$context)=@_;
push @{$context}, $chunk;
return length($chunk);
}Curl::easy::setopt
($curl, CURLOPT_PROXY, $proxy) if($proxy);
Curl::easy::setopt
($curl, CURLOPT_PROXYPORT, $proxyport) if($proxyport);
Curl::easy::setopt
($curl, CURLOPT_SSL_VERIFYHOST, 0);
Curl::easy::setopt
($curl, CURLOPT_SSL_VERIFYPEER, 0);
Curl::easy::setopt
($curl, CURLOPT_URL, $url);
Curl::easy::setopt
($curl, CURLOPT_WRITEFUNCTION, \&body_callback);my @body;
Curl::easy::setopt
($curl, CURLOPT_FILE, \@body);
Curl::easy::setopt
($curl, CURLOPT_ERRORBUFFER, "errbuf");
if (Curl::easy::perform
($curl) != 0) { print "Failed : $errbuf\n"; };
Curl::easy::cleanup($curl);# Separate each line into one element in array
@lines=();foreach (@body) { push(@lines,split('\n', $_, 9999)); }
foreach (@lines) {
# just to demonstrate it works!
if(/icons/) { print("$_\n"); }
}exit(0);
Here is a demo screen shot of this code using perl and libcurl.
Reference
Technorati Tags: Perl libcurl demo, Perl libcurl, Perl, libcurl, curl, Perl Coding School


