limner has asked for the wisdom of the Perl Monks concerning the following question:
Hi to all brothers monks
i've successfully wrote a perl script that retrieve an html page, parse it and prepare,
at the end a logfile from the html page.
In order to do this, at this moment, the program does the following:
1) unlink the file from disk, if exist on disk
2) retrieve in memory the correct html page
3) write on disk the html page on a standard filename (file.html)
4) read the file on disk (file.html) and parse it
5) write on disk the logfile
What i would like to do is avoid to write the "file.html" on disk and work only
in ram, so i would like to retrieve it, NOT write it on disk, and parse it in memory.
The following are the program lines that do this:
Everithing works as i would, but in this way every time i parse a page
i remove and write file.html in order to parse it.
How can i do everithin in memory without writing the file?
Thanks Limner
i've successfully wrote a perl script that retrieve an html page, parse it and prepare,
at the end a logfile from the html page.
In order to do this, at this moment, the program does the following:
1) unlink the file from disk, if exist on disk
2) retrieve in memory the correct html page
3) write on disk the html page on a standard filename (file.html)
4) read the file on disk (file.html) and parse it
5) write on disk the logfile
What i would like to do is avoid to write the "file.html" on disk and work only
in ram, so i would like to retrieve it, NOT write it on disk, and parse it in memory.
The following are the program lines that do this:
$nomefile="file.html"; ### name of temporary filename unlink $nomefile; ### remove the file $url="http://www.sitename.com/pagespecial.html"; $mech->get($url); $mech->save_content($nomefile); ### Instr i would like to change use WWW::Mechanize; use HTML::TableExtract; use HTML::Entities; use Text::Unidecode; $user_agent='Mozilla/5.0 (Windows; U; Windows NT 6.1; nl; rv:1.9.2.13) + Gecko/20101203 Firefox/3.6.13'; my $mech = WWW::Mechanize->new(agent => $user_agent); my $headers = ['col1', 'col2', 'col3', 'col4', 'col5']; my $table_extract = HTML::TableExtract->new(headers => $headers); $table_extract->parse_file($nomefile); ### Inst i would like to chang +e my ($table) = $table_extract->tables;
Everithing works as i would, but in this way every time i parse a page
i remove and write file.html in order to parse it.
How can i do everithin in memory without writing the file?
Thanks Limner
Back to
Seekers of Perl Wisdom