Guest User

Untitled

a guest
Jun 20th, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. #!/usr/bin/env perl
  2.  
  3. use strict;
  4. use warnings;
  5.  
  6. use WWW::Mechanize;
  7.  
  8. my $mech = new WWW::Mechanize(
  9. autocheck => 1
  10. );
  11.  
  12. $mech->agent_alias('Windows IE 6');
  13.  
  14. my $user_agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)';
  15.  
  16. unless($ARGV[0]){
  17. print STDERR "You must specify a Wikimedia Category page\n";
  18. }
  19.  
  20. print STDERR "Loading $ARGV[0]...\n";
  21. my $response = $mech->get($ARGV[0]);
  22. my %fetched_urls = ();
  23.  
  24. if($mech->success()){
  25. print STDERR "Loaded category page...\n";
  26. my @links = $mech->find_all_links(url_regex => qr/Image\:/ );
  27. foreach my $link (@links){
  28. $mech->get($link->url());
  29.  
  30. if($mech->success()){
  31. my $image_url = $mech->find_link(text => 'Full resolution');
  32. if($image_url){
  33. my $url = $image_url->url();
  34. unless(exists $fetched_urls{$url}){
  35. print STDERR "Downloading $url\n";
  36.  
  37. system("curl -A \"$user_agent\" -O $url");
  38. if($? == -1) {
  39. print STDERR "\nfailed to execute: $!\n";
  40. exit();
  41. }
  42. elsif($? & 127) {
  43. printf STDERR "\nchild died with signal %d, %s coredump\n",
  44. ($? & 127), ($? & 128) ? 'with' : 'without';
  45. exit();
  46. }
  47. elsif($?){
  48. printf STDERR "\nchild exited with value %d\n", $? >> 8;
  49. exit();
  50. }
  51. }
  52. $fetched_urls{$url} = 1;
  53. }
  54. }
  55. }
  56. }
  57. else{
  58. print STDERR "Couldn't load category page...\n";
  59. }
Add Comment
Please, Sign In to add comment