google count
google에서 검색어를 넣고 검색하면 상단에
약 몇개의 결과 라고 해당 검색어를 색인하고 있는 페이지의 수를 보여줍니다.
그리고 google의 검색옵션중에
daterange:[from date]-[to date] 의 형식이 있는데
들어가는 날짜 형식은 julian date형식으로 넣어야 합니다.
참고: http://aa.usno.navy.mil/data/docs/JulianDate.html
다음 프로그램은 특정한 기간동안 구글이 검색어에 대해
얼마나 많은 페이지를 인덱싱하였나를 뽑아 내는 프로그램입니다.
뭐 google api를 사용해도 되지만 하루에 1000건으로 제한되어
있고 웹페이지결과를 parsing해서 뽑아낼 수 도 있는 결과를
굳이 api를 통해서 할 필요도 없어보이고 해서 이렇게 만들었습니다.
google은 이런식의 자동화된 대량쿼리를 보낼경우 ip block할 수
도 있다고 약관에 명시되어 있으니 과용하면 block당 할 수 도
있습니다. :) 실제로 User-agent를 perl LWP모듈 그대로
쓰니 fobidden되더군요 그래서 소스에 보시면 아시겠지만
'Mozilla'로 해놨습니다.
사용법은
google_count.pl 20050101 20050201 검색어
형식입니다.
#!/usr/bin/perl # Usage google_count.pl 20050101 20050201 querystring use LWP 5.65; use URI::URL; use HTTP::Date; use Time::JulianDay; my $debug=0; my $from_date = str2time($ARGV[0]); my $to_date = str2time($ARGV[1]); my $query = $ARGV[2]; print "From date:$from_date\n" if $debug; print localtime($from_date)."\n" if $debug; print "To date:$to_date\n" if $debug; print localtime($to_date)."\n" if $debug; my($sec, $min, $hour, $mday, $mon, $year, $wday, $yday) = localtime($from_date); my $from_julian_date = int local_julian_day($from_date); print "From julian date:$from_julian_date\n" if $debug; my($sec2, $min2, $hour2, $mday2, $mon2, $year2, $wday2, $yday2) = localtime($to_date); my $to_julian_date = int local_julian_day($to_date); print "To julian date:$to_julian_date\n" if $debug; my $unencoded_url = 'http://www.google.com/search?hl=ko&num=10&q=' .$query.' daterange:'.$from_julian_date."-".$to_julian_date; my $url = URI::URL->new($unencoded_url); print "unencoded: " . $unencoded_url ."\n" if $debug; print "encoded: " . $url->as_string . "\n" if $debug; my $browser = LWP::UserAgent->new(); my $response = $browser->get($url->as_string, 'User-Agent'=>'Mozilla' ); if($response->is_success) { $res = $response->content; print "Response:\n$res\n" if $debug; $res =~ m {<b>([0-9,]*?)</b>개}i; my $count = $1; $count =~ tr/^0-9//cd; print "$ARGV[0] $ARGV[1] $count\n"; } else { print $response->error_as_HTML if $debug; }
위 프로그램으로 요즘 이슈가 되는 "독도" 에 대해서
2005 2~3월 달 사이를 하루 간격으로 데이터를 뽑아보면
다음과 같습니다.
20050201 4 20050202 12 20050203 15 20050204 5 20050205 1 20050206 3 20050207 7 20050208 6 20050209 2 20050210 5 20050211 6 20050212 53 20050213 104 20050214 92 20050215 72 20050216 84 20050217 85 20050218 80 20050219 80 20050220 73 20050221 124 20050222 146 20050223 130 20050224 133 20050225 146 20050226 163 20050227 199 20050301 213 20050302 298 20050303 188 20050304 142 20050305 140 20050306 137 20050307 176 20050309 160 20050310 325 20050311 384 20050312 204 20050314 198 20050315 416 20050316 631 20050317 607 20050318 561 20050319 522 20050320 597 20050321 622 20050322 377 20050323 469 20050324 23700 20050325 49700 20050326 47600 20050327 39600 20050328 38900 20050329 68600 20050330 61200
google이 같은 페이지를 얼마간의 간격으로 재인덱싱 하는지는
모르지만 어떤 단어가 이슈화 됨에 따라 google의 해당 단어에
대한 인덱싱수가 같이 증가하는 경향을 볼 수 있습니다.
제가 이 간단한 프로그램을 만든 동기는 google을 통해
특정 키워드에대한 기간별 인덱싱수를 뽑아서 현 사회의
이슈가 무엇인지 트랜드를 분석해볼 수 있지 않을까 하는
생각에 만들어 봤습니다.
오옷, 멋집니당. 감동의 물결 출렁~ㅠ.ㅠ;대체 어케 하면 저런 코드
오옷, 멋집니당. 감동의 물결 출렁~ㅠ.ㅠ;
대체 어케 하면 저런 코드가 나올수 있는거죠?ㅠ.ㅠ;
아 머리 리콜받고 싶당...ㅠ.ㅠ;
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
[quote="qed"]오옷, 멋집니당. 감동의 물결 출렁~ㅠ.ㅠ;대
저.. 머리 리콜이요, 언제까지 되는건가요? 연식이 좀 되어서 .. 근데 거의 안썼어요. 거의 새거예요.
----------------------------
May the F/OSS be with you..
[quote="hey"][quote="qed"]오옷, 멋집니당. 감동의
음 전 못질하는데 좀 써서, 쌀꺼에요 ... 네고 왕창 해드립니다.
http://kkanari.egloos.com/
일단 중고시세는 대강 알아보셨으리라 생각합니다.저도 알아봤는데 거의
일단 중고시세는 대강 알아보셨으리라 생각합니다.
저도 알아봤는데 거의 똥값이더군요.
더구나 a/s기간도 지나서 설령 리콜한대도 유상일 가능성이 높습니다.
무엇보다 요청이 쇄도해서 언제 돌아올지 알수 없사오니,
cold sleep시켜두시길 권고드립니다.^O^//
(같이 자야징.ㅠ.ㅠ;)
--------------------------------------------------------------------------------
\(´∇`)ノ \(´∇`)ノ \(´∇`)ノ \(´∇`)ノ
def ed():neTdiVeR in range(thEeArTh)
오호, 괜찮은 아이디어네요. :) (SugarCube 플러그인이나 만들까
오호, 괜찮은 아이디어네요. :) (SugarCube 플러그인이나 만들까;)
- 토끼군
[quote="hey"][quote="qed"]오옷, 멋집니당. 감동의
헉...거의 새 거 인가요? :P
댓글 달기