http://qs321.pair.com?node_id=11117053


in reply to Re: LWP::UserAgent & match
in thread LWP::UserAgent & match

Thanks hippo. I did make the change but no luck in match. BTW, the $string does contain the matcheded string $todaysQuoteStr. My revised code
use strict; use warnings; use LWP::UserAgent; use feature 'say'; my ($position,$price); my $todaysQuoteStr = 'data-reactid="49"><span class="Trsdu(0.3s) Fw(b) + Fz(36px) Mb(-4px) D(ib)" data-reactid="50">'; $todaysQuoteStr = quotemeta($todaysQuoteStr); my $url = 'https://finance.yahoo.com/quote/AAPL?p=AAPL&.tsrc=fin-srch' +; my $ua = LWP::UserAgent->new(); my $req = HTTP::Request->new(GET => $url); $ua->agent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537. +36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'); my $response = $ua->request($req); my $string = $response->decoded_content; #say "string = $string"; say "\t\t\t=>searching for todays quote pattern [$todaysQuoteStr]"; + $position = 0; if ($string =~ m/$todaysQuoteStr/) { my $quoteStr = substr $string, $position, 20; say "quoteStr = $quoteStr"; my @quotes = split(/<\/span>/,$quoteStr); $price = $quotes[0]; say "\t\t\t[price = $price]"; } else { say "\t\t\t pattern not found"; }

Replies are listed 'Best First'.
Re^3: LWP::UserAgent & match
by vskatusa (Acolyte) on May 21, 2020 at 16:51 UTC
    worked - code below
    use strict; use warnings; use LWP::UserAgent; use feature 'say'; my ($price); my $todaysQuoteStr = 'data-reactid="49"><span class="Trsdu(0.3s) Fw(b) + Fz(36px) Mb(-4px) D(ib)" data-reactid="50">'; $todaysQuoteStr = quotemeta($todaysQuoteStr); my $url = 'https://finance.yahoo.com/quote/AAPL?p=AAPL&.tsrc=fin-srch' +; my $ua = LWP::UserAgent->new(); my $req = HTTP::Request->new(GET => $url); $ua->agent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537. +36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36'); my $response = $ua->request($req); my $string = $response->decoded_content; #say "string = $string"; say "\t\t\t=>searching for todays quote pattern [$todaysQuoteStr]"; + my ($counter,$position) = (0,''); while ($string =~ m/$todaysQuoteStr/g) { $counter++; $position = pos($string); if ($counter == 1) {last;} # } if (!(defined($position))) { $position = ''; } if ($position eq '') { say "\t\t\t\t<<pattern not found!>> "; } else { my $quoteStr = substr $string, $position, 20; say "quoteStr = $quoteStr"; my $endStr = '</span>'; $endStr = quotemeta($endStr); my @quotes = split(/$endStr/,$quoteStr); $price = $quotes[0]; say "\t\t\t[price = $price]"; }