18 Ağustos 2009 Salı

Bir web sayfasindan sadece email adreslerini nasil aliriz (email extract with perl )

Bir gun bir gazetede okudugum haber uzerine butun yazarlara email atmak istedim ve web sayfasinda bu emailler siralanmisti bunlari asagidaki perl script yardimiyla sirayla cektim. Linux komut satirinda

#pico emailextractor.pl

yazip asagidaki satirlari dosyaya ekliyoruz
#!/usr/bin/perl

use strict;
use warnings;
use LWP::UserAgent;
use HTML::TokeParser;
use URI;

my $ua = LWP::UserAgent->new;
$ua->timeout(10);
my $root_uri = 'http://www.hurriyet.com.tr/yazarlar/';
my $response = $ua->get($root_uri);
if ($response->is_success) {
my $html = $response->decoded_content;
my $p = HTML::TokeParser->new( \$html );
while (my $tag = $p->get_tag('a')) {
my $href = $tag->[1]{href};
next unless $href;
my $uri = URI->new_abs( $href, $root_uri );
next unless ($uri->scheme eq 'mailto');
print $uri->to, "\n";
}
} else {
die $response->status_line;
}
ctrl+x dedikten sonra iki kere entera basarak dosyayi kaydediyoruz ve komut satirindan bu perl scriptimizi calistirmak icin

#perl emailextractor.pl

yaziyoruz ve script buldugu email adreslerini sirayla ekrana dokuyor. Bu email adreslerini bir dosyaya yazdirmak istersek asagidaki komutu kullaniyoruz

#perl emailextractor.pl > emails.txt

Hiç yorum yok:

Yorum Gönder

İzleyiciler