,,Po dziennik Fakt (Ringier Axel Springer Polska) w okresie od maja do października 2015 roku sięgało 10,33%. Drugie miejsce zajęła Gazeta Wyborcza (Agora), której poziom czytelnictwa wzrósł w ciągu roku o 0,39 pkt. proc. do 8,58%.'' (za Gazeta Wyborcza dogania...).
Na samym końcu tekstu: ,,Podane liczby to wskaźniki CCS -- Czytelnictwo Cyklu Sezonowego''.
Ki ch#j ten CCS? Bo liczby wydają się mooocno napompowane. Okazuje się, że CCS oznacza jaki procent w populacji stanowią osoby, które zetknęły się z tym tytułem choćby raz w okresie cyklu sezonowego... (za Wskaźniki PBC). Jeszcze żeby było wiadomo co oznacza ,,zetknęły się''? Zawinęły karpia w sklepie albo pocięły jako ersatz Toilettenpapier?
Skądinąd wiadomo (z innej strony na tym samym serwerze), że sprzedaż ww. jest licha (por. Spadła sprzedaż kioskowa wszystkich dziennikóww). Proste przemożenie 30136052 (Polacy w wieku 15--75 lat) x 10,33% i 8,58% odpowiednio daje w wyniku 3,1 i 2,6 mln czytelników przy 300 i 180 tys sprzedanych egz. co oznacza, że 1 egz. Faktu czyta 10 osób, a GW nawet 15... Kto chce niech wierzy.
Ja bym zamiast pytać ,,czy się zetknął'' pytał się o treść 1 dowolnego tekstu z gazety ,,z którą się miało zetknięcie''... Ciekawe ile by wtedy wyszło...
Dane z artykułów w formacie CSV są poniżej:
tytul;CCS2015;CCS2014;platne2015;druk2015;platne2014;druk2014;cz2015;cz2014;razem2015u;razem2014u;druk2015u;druk2014u Fakt;10.33;11.74;308616;305178;326748;323002;3113054;3537973;1008.7;1082.8;1020.1;1095.3 Gazeta Wyborcza;8.58;8.19;177447;106794;191127;113292;2585673;2468143;1457.2;1291.4;2421.2;2178.6 SuperExpress;3.58;4.55;145647;143954;153387;151735;1078871;1371190;740.7;893.9;749.5;903.7 Przegląd Sportowy;3.57;2.90;31484;30518;35546;34500;1075857;873946;3417.2;2458.6;3525.3;2533.2 Dziennik Gazeta Prawna;1.68;1.59;54089;9887;58027;11412;506286;479163;936.0;825.8;5120.7;4198.8 Rzeczpospolita;1.62;1.94;56560;7897;58056;9352;488204;584639;863.2;1007.0;6182.1;6251.5 PulsBiznesu;0.31;0.20;13314;1655;13996;1743;93422;60272;701.7;430.6;5644.8;3458.0 Parkiet Gazeta Giełdy;0.09;0.08;5332;1319;5015;1532;27122;24109;508.7;480.7;2056.3;1573.7
Gdzie: CCS2015 -- wskaźniki CCS dla 2015 r.; platne2015 -- rozpowszechnianie płatne razem w 2015;
druk2015 -- sprzedaż egz. wydań drukowanych; cz2015 = CCS2015 * 30136052;
razem2015u = platne2015 / druk2015 * 100%; druk2015u = druk2015 / druk2015 * 100%.
Dla roku 2014 analogicznie.
Ponadto:
Sprzedaż ogółem to suma sprzedaży egzemplarzowej wydań drukowanych, sprzedaży egzemplarzowej e-wydań oraz wszystkich form prenumeraty wydań drukowanych i prenumeraty e-wydań.
Rozpowszechnianie płatne razem to suma sprzedaży egzemplarzowej wydań drukowanych, sprzedaży egzemplarzowej e-wydań, prenumeraty wydań drukowanych i prenumeraty e-wydań oraz innych płatnych formy rozpowszechniania wydań drukowanych i innej płatnej dystrybucji e-wydań.
Poniższy skrypt Perlowy
służy do pobierania najnowszych twitów (Tweets) użytkowników
identyfikowanych poprzez ich screen_name
. Twity
są dopisywane do bazy, która jednocześnie pełni rolę pliku
konfiguracyjnego.
Przykładowo, aby twity użytkownika maly_wacek
były
dodane do bazy należy wpisać do niej wpis (w dowolnym miejscu, dla
porządku najlepiej na początku):
INIT;maly_wacek;;INIT
Ściśle rzecz biorąc po pierwszym dodaniu do bazy, powyższy wpis jest
już niepotrzebny, ale też nie przeszkadza. Baza jest zapisywana
w taki sposób, że najnowszy tweet każdego użytkownika jest na końcu,
zatem po przeczytaniu pliku, w wyniku przypisania
$Users{$tmp[1]} = $tmp[0]
(por. poniżej),
hash %Users
zawiera wszystkich użytkowników oraz id_str
ich ostatnio
pobranego twita. Zapewne niespecjalnie optymalny sposób
archiwizacji, ale prosty i działa:
#!/usr/bin/perl use Net::Twitter; # Z UTF8 w Perlu jest zawsze problem: use open ":encoding(utf8)"; use open IN => ":encoding(utf8)", OUT => ":utf8"; my $timelineBase = "timelines.log"; if ( -f "$timelineBase" ) { open (BASE, $timelineBase) || die "Cannot open: $timelineBase"; while (<BASE>) { chomp(); @tmp = split /;/, $_; $Users{$tmp[1]} = $tmp[0]; # last id_str } } close (BASE) ; ## ### #### open (BASE, ">>$timelineBase") ; my $nt = Net::Twitter->new(legacy => 0); my $nt = Net::Twitter->new( traits => [qw/API::RESTv1_1/], consumer_key => "######", consumer_secret => "######", access_token => "######", access_token_secret => "######", ); foreach $user ( keys %Users ) { my @message ; my $screen_name = $user ; my $result ; if ( $Users{$user} eq 'INIT' ) { ## max ile się da, wg dokumentacji 3200 $result = $nt->user_timeline({ screen_name => $screen_name, count=> '3200' }) } else { $result = $nt->user_timeline({ screen_name => $screen_name, since_id => $Users{$user}, }); } foreach my $tweet ( @{$result} ) { $text_ = $tweet->{text} ; $text_ =~ s/;/\,/g; $text_ =~ s/\n/ /g; $date_ = $tweet->{created_at} ; push ( @message, $tweet->{id_str} . ";" \ . "$screen_name;$date_;$text_" ); } ## Drukuj posortowane: my $tweetsC; foreach my $tweet ( sort (@message) ) { $tweetsC++ ; print BASE $tweet . "\n"; } if ( $tweetsC > 0 ) { print STDERR "fetched $tweetsC for $screen_name\n"; } } close (BASE)
Uwaga: poprzez API można pobrać twity użytkowników, którzy zablokowali nam możliwość oglądania ich konta (inna sprawa po co oglądać takiego palanta).
apps.twitter.com
Należy się zalogować na
stronie apps.twitter.com/
.
Kliknąć Create New App.
Wybrać Name (np. tprzechlewski.app
),
Description, Website i Callback URL.
Wybrać Keys and Access Tokens i pobrać wartości:
Consumer Key
oraz Consumer Secret
.
Przewinąć zawartość strony i wybrać Create my access token.
Zostaną wygenerowane Access Token
oraz Access Token Secret
,
które także należy pobrać.
Na potrzeby wyżej opisanego skryptu to wystarczy. Pobrane wartości
wstawiamy w miejsca oznaczone jako ######
Net::Twitter
Na jednym z moich komputerów ciągle działa dość archaiczna wersja Debiana Lenny:
$ cat /proc/version Linux version 2.6.32-5-kirkwood (Debian 2.6.32-30) $ cat /etc/issue Debian GNU/Linux 5.0 \n \l $ perl --version This is perl, v5.10.0 built for arm-linux-gnueabi-thread-multi Copyright 1987-2007, Larry Wall
Z poważnym obawami, że się uda spróbowałem:
cpan> install Net::Twitter Strange distribution name
Pomaga (por. tutaj):
cpan> install IO::AIO
Potem:
cpan> install YAML cpan> install Net::Twitter
Ściąga się milion pakietów. Przy testowaniu Net-HTTP-6.09
system zawisł na etapie t/http-nb.t
(pomogło Ctr-C), ale
finał był pomyślny, tj. Net::Twitter
został zaistalowany.
Mój inny system jest już nowszy a instalacja Net::Twitter
bezproblemowa:
$ cat /etc/issue Fedora release 21 (Twenty One) $ perl --version This is perl 5, version 18, subversion 4 (v5.18.4) built for x86_64-linux-thread-multi (with 25 registered patches, see perl -V for more detail) Copyright 1987-2013, Larry Wall $ yum install perl-Net-Twitter
Teraz wystarczy umieścić w crontab
na przykład taki wpis:
# 48 min po północy codziennie 48 0 * * * /home/tomek/bin/twitter.sh
Co zawiera twitter.sh
jest oczywiste