Emails ge-extracteerd uit Boekdelen downloaden in PDF


#1

Allo,

Ik wil alle emails van GoudenGids hebben. (student programma)
Maar voor een student zoals mij, ik moet niet de DVD kopen.

Dat is mijn kleine script in Perl voor deze probleem.
Ik ben niet en piraat, voor mij 't is legaal te extracteren informaties thuis (:

Ik ben franstalig, excuseert veel voor mijn fletche nederlandstalig schrijven.

exemple van een pagina in PDF format uit goudengids.be :

http://goudengids.truvo.be/content/proof_copy/10RUB2009/G10-1-0226.pdf

We hebben ongeveer 1200 bladzijden deze jaar (2009)

#! /usr/bin/perl

$MyHomeWhereIDownload = /home/MIJ/TRUVO; 
# Change the variable directory 

for ($i = 1; $i <= 1200; $i++){
  if ($i < 10) { 
    system "wget --directory-prefix=$MyHomeWhereIDownload http://goudengids.truvo.be/content/proof_copy/10RUB2009/G10-1-000$i.pdf"
    };
  if ($i < 100 && $i > 9) { 
    system "wget --directory-prefix=$MyHomeWhereIDownload http://goudengids.truvo.be/content/proof_copy/10RUB2009/G10-1-00$i.pdf"
    };
  if ($i < 1000 && $i > 99) { 
    system "wget --directory-prefix=$MyHomeWhereIDownload http://goudengids.truvo.be/content/proof_copy/10RUB2009/G10-1-0$i.pdf"
    };
  if ($i < 1200 && $i > 999) { 
    system "wget --directory-prefix=$MyHomeWhereIDownload http://goudengids.truvo.be/content/proof_copy/10RUB2009/G10-1-$i.pdf"
    };
  }
# WGET OK!

for ($i = 1; $i <= 1200; $i++){
  if ($i < 10) { 
    system "pdftotext $MyHomeWhereIDownload/G10-1-000$i.pdf $MyHomeWhereIDownload/G10-1-000$i.txt"
    };
  if ($i < 100 && $i > 9) { 
    system "pdftotext $MyHomeWhereIDownload/G10-1-00$i.pdf $MyHomeWhereIDownload/G10-1-00$i.txt"
    };
  if ($i < 1000 && $i > 99) { 
    system "pdftotext $MyHomeWhereIDownload/G10-1-0$i.pdf $MyHomeWhereIDownload/G10-1-0$i.txt"
    };
  if ($i < 1200 && $i > 999) { 
    system "pdftotext $MyHomeWhereIDownload/G10-1-$i.pdf $MyHomeWhereIDownload/G10-1-$i.txt"
    };
  }
# ASCII OK!

for ($i = 1; $i <= 1200; $i++){
  if ($i < 10) { 
    system "perl -wne'while(/[\w\.\-]+@[\w\.\-]+\w+/g){print "$&\n"}' $MyHomeWhereIDownload/G10-1-000$i.txt | sort -u > $MyHomeWhereIDownload/G10-1-000$i.txt.bak"
    };
  if ($i < 100 && $i > 9) { 
    system "perl -wne'while(/[\w\.\-]+@[\w\.\-]+\w+/g){print "$&\n"}' $MyHomeWhereIDownload/G10-1-00$i.txt | sort -u > $MyHomeWhereIDownload/G10-1-00$i.txt.bak"
    };
  if ($i < 1000 && $i > 99) { 
    system "perl -wne'while(/[\w\.\-]+@[\w\.\-]+\w+/g){print "$&\n"}' $MyHomeWhereIDownload/G10-1-0$i.txt | sort -u > $MyHomeWhereIDownload/G10-1-0$i.txt.bak"
    };
  if ($i < 1200 && $i > 999) { 
    system "perl -wne'while(/[\w\.\-]+@[\w\.\-]+\w+/g){print "$&\n"}' $MyHomeWhereIDownload/G10-1-$i.txt | sort -u > $MyHomeWhereIDownload/G10-1-$i.txt.bak"
    };
  }
# EMAIL EXTRACTOR OK!

system "touch $MyHomeWhereIDownload/FinalEmailsExtract.txt";

for ($i = 1; $i <= 1200; $i++){
  if ($i < 10) { 
    system "cat $MyHomeWhereIDownload/G10-1-000$i.txt.bak >> $MyHomeWhereIDownload/FinalEmailsExtract.txt"
    };
  if ($i < 100 && $i > 9) { 
    system "cat $MyHomeWhereIDownload/G10-1-00$i.txt.bak >> $MyHomeWhereIDownload/FinalEmailExtract.txt"
    };
  if ($i < 1000 && $i > 99) { 
    system "cat $MyHomeWhereIDownload/G10-1-0$i.txt.bak >> $MyHomeWhereIDownload/FinalEmailsExtract.txt"
    };
  if ($i < 1200 && $i > 999) { 
    system "cat $MyHomeWhereIDownload/G10-1-$i.txt.bak >> $MyHomeWhereIDownload/FinalEmailsExtract.txt"
    };
  }
# ALL EMAILS EXTRACTED ON "FinalEmailsExtract.txt" file!

De script werkt perfekt in Linux.


#2

Het gaat jou toch alleen om het resultaat, waarom doe je het dan niet vanuit Linux?

Dat gaat sneller dan alle Linux commando’s vertalen naar Windows, want dan moet je bijna het hele script opnieuw opbouwen.
Ik neem aan dat je het script niet zelf hebt geschreven, heb je wel enige kennis van Perl?