Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- # Name: zukunfts_stats_threaded.pl
- # gepostet hier:
- # Funktion: Abstimmungsergebnisse auf http://dialog-ueber-deutschland.de sammeln
- # dieses Skript fragt die Statistiken über die Abstimmungsergebnisse auf http://dialog-ueber-deutschland.de ab
- # und schreibt diese Daten in ein Logfile mit der .txt-Erweiterung
- #
- # Hinweise des Autors:
- # das Skript alle 5 minuten für jedes der 3 themen einen thread ... welcher wiederrum alle vorschläge mit mehr als 20.000 votes in ein logfile schreibt.
- # das sub-directory "logs" muss existieren
- use strict;
- use warnings;
- use threads;
- use threads::shared;
- my @urls=(
- 'https://www.dialog-ueber-deutschland.de/DE/20-Vorschlaege/10-Wie-Leben/vorschlag_einstieg_node.html?cms_gts=500186_Dokumente%253Dvotes#Inhalt',
- 'https://www.dialog-ueber-deutschland.de/DE/20-Vorschlaege/20-Wovon-Leben/vorschlag_einstieg_node.html?cms_gts=500216_Dokumente%253Dvotes#Inhalt',
- 'https://www.dialog-ueber-deutschland.de/DE/20-Vorschlaege/30-Wie-Lernen/vorschlag_einstieg_node.html?cms_gts=500218_Dokumente%253Dvotes#Inhalt',
- );
- while(1){
- print 'running at ' . scalar(localtime(time())) . ' ...' . "\n";
- foreach my $url (@urls){
- print 'url ' . $url . ' ...' . "\n";
- my $thr = threads->create('doshit',($url));
- }
- # wait/check returnvalues
- sleep 30;
- foreach(threads->list(threads::joinable)){
- print '[MAIN] thread#' . $_->tid . '] returned "' . $_->join() . '".' . "\n"; # returncode
- }
- sleep 270;
- }
- sub doshit() {
- my($url)=@_;
- use LWP::UserAgent;
- my $ua = LWP::UserAgent->new;
- $ua->agent("Mozilla/8.0");
- my $req = HTTP::Request->new(GET => $url);
- $req->header('Accept' => 'text/html');
- my $res = $ua->request($req);
- next if !$res->is_success;
- my $doc=$res->content;
- print length($doc) . "\n";
- my $time=time();
- $doc =~ s/[\n\r]*//gi;
- while($doc=~/<div class="vote-box">(.+?)<li class="comments">/gi){
- my $v=$1;
- if($v=~ /<span class="vorschlag-(\d+)">/){
- my $id=$1;
- if($v=~ /<span class="number">(\d+)<\/span>/){
- my $count=$1;
- if($count>10000){
- open(OUT,'>>./logs/zukunft_' . $id . '.txt') or die $! . "\n";
- print OUT 'TIME:' . $time . '/ID:' . $id . '/COUNT:' . $count . "\t\t" . scalar(localtime($time)) . "\n";
- close(OUT) or warn $! . "\n";
- }
- }
- }
- }
- return 1;
- }
- # <div class="vote-box">
- # <span class="vorschlag-3569">#
- #
- # <span class="number">35782</span>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement