# http://images.isiknowledge.com/WOK46/help/WOS/h_advanced_examples.html
our $q = 'AD=Croatia';
+$q = 'CA=BRATKO, D';
+
my $range_size = 500;
my $overlap = 3; # between previous and this range
+
my $results = 0;
my $citations = 0;
+
my $cites_by_year = 0;
my $max_cites = 5000; # ISI limit to get cites
-if ( 0 ) {
- $q = 'TS=psychology AND AD=Croatia';
- $range_size = 50;
- $overlap = 0;
- $max_cites = 50;
-}
-
$q = unac_string( 'utf-8', join(' ', @ARGV) ) if @ARGV;
+warn "QUERY: $q\n";
+
our $mech = WWW::Mechanize->new(
autocheck => 0, # it dies in reference download with it!
cookie_jar => undef,
return $years;
}
-search;
-years;
-get_results 'results' if $results;
+if ( $results ) {
+ search;
+ years;
+ get_results;
+}
if ( $citations ) {
citations;
+ years unless @ranges;
do {
my $part;
} while ( @ranges );
}
+
+if ( $q =~ m{CA=(.+)} ) {
+
+ my $CA = $1;
+
+ warn "# citated reference search";
+ $mech->follow_link( url_regex => qr/CitedReferenceSearch/ );
+ save_mech;
+
+
+ $mech->submit_form(
+ form_name => 'WOS_CitedReferenceSearch_input_form',
+ fields => {
+ 'value(input1)' => $CA,
+ },
+ );
+
+ my $page = 1;
+ my $records = $1 if $mech->content =~ m/(\d+)\s+records/;
+ warn "# found $records records\n";
+ my $last_span = 'fake';
+
+ while (1) {
+ save_mech "/tmp/isi.$q.citedref.$page";
+
+ $page++;
+
+ $mech->submit_form(
+ form_name => 'summary_navigation',
+ fields => {
+ 'page' => $page,
+ },
+ );
+
+ $mech->form_name( 'summary_navigation' );
+ last if $mech->value('page') < $page;
+
+ if ( $mech->content =~ m/(\d+\s*-\s*(\d+))/ ) {
+ warn "span: $1\n";
+ last if $2 == $records;
+ last if $1 == $last_span;
+ $last_span = $1;
+ } elsif ( $page > 5 ) {
+ warn "ARTIFICALLY LIMITED TO 5 PAGES WITHOUT VALID SPAN!";
+ last;
+ }
+
+ }
+
+}
+
+warn "OVER\n";