⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webautomation.mht

📁 Perl 编程技巧大全。适合初学者阅读。
💻 MHT
📖 第 1 页 / 共 5 页
字号:
#Tue Nov 18 13:41:32 1997  http://www.perl.com/universal/header.map
#
#Wed Oct  1 12:55:13 1997  http://www.songline.com/
#
#Sun Aug 17 21:43:51 1997  =
http://www.perl.com/graphics/perlhome_header.jpg
#
#Sun Aug 17 21:43:47 1997  http://www.perl.com/graphics/perl_id_313c.gif
#
#Sun Aug 17 21:43:46 1997  http://www.perl.com/graphics/ora_logo.gif
#
#Sun Aug 17 21:43:44 1997  http://www.perl.com/graphics/header-nav.gif
#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN1081>Creating HTML Templates</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
  <TBODY>
  <TR>
    <TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>sub</FONT> <FONT =
color=3D#b2dfee>template</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#ffa500>my</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#9ac0cd>$filename</FONT>, <FONT =
color=3D#9ac0cd>$fillings</FONT><FONT color=3D#00ffff>)</FONT> =3D <FONT =
color=3D#cdad00>@_</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>my</FONT> <FONT =
color=3D#9ac0cd>$text</FONT><FONT color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>local</FONT> $/<FONT color=3D#00ffff>;</FONT>  =
                 <FONT color=3D#bebebe># slurp mode (undef)
</FONT>    <FONT color=3D#ffa500>local</FONT> <FONT =
color=3D#9ac0cd>*F</FONT><FONT color=3D#00ffff>;</FONT>                  =
 <FONT color=3D#bebebe># create local filehandle
</FONT>    <FONT color=3D#98fb98>open</FONT><FONT =
color=3D#00ffff>(</FONT>F, <FONT color=3D#00cd00>"&lt; =
$filename\0"</FONT><FONT color=3D#00ffff>)</FONT>    || <FONT =
color=3D#ffa500>return</FONT><FONT color=3D#00ffff>;</FONT>
    $text =3D &lt;F&gt;<FONT color=3D#00ffff>;</FONT>                =
<FONT color=3D#bebebe># read whole file
</FONT>    <FONT color=3D#98fb98>close</FONT><FONT =
color=3D#00ffff>(</FONT>F<FONT color=3D#00ffff>);</FONT>                 =
  <FONT color=3D#bebebe># ignore retval
</FONT>    <FONT color=3D#bebebe># replace quoted words with value in =
%$fillings hash
</FONT>    $text =3D~ <FONT color=3D#ff7f50>s</FONT><FONT =
color=3D#00ffff>{</FONT> %% <FONT color=3D#00ffff>(</FONT> .*? <FONT =
color=3D#00ffff>)</FONT> %% <FONT color=3D#00ffff>}</FONT>
              <FONT color=3D#00ffff>{</FONT> <FONT =
color=3D#ff7f50>exists</FONT><FONT color=3D#00ffff>(</FONT> =
$fillings-&gt;<FONT color=3D#00ffff>{</FONT>$<FONT =
color=3D#cdcd00>1</FONT><FONT color=3D#00ffff>}</FONT> <FONT =
color=3D#00ffff>)</FONT>
                      ? $fillings-&gt;<FONT =
color=3D#00ffff>{</FONT>$<FONT color=3D#cdcd00>1</FONT><FONT =
color=3D#00ffff>}</FONT>
                      : <FONT color=3D#00cd00>""</FONT>
              <FONT color=3D#00ffff>}</FONT>gsex<FONT =
color=3D#00ffff>;</FONT>
    <FONT color=3D#ffa500>return</FONT> $text<FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
#&lt;!-- simple.template for internal template() function --&gt;
#&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;Report for %</FONT><FONT =
color=3D#cdcd00>%username</FONT><FONT =
color=3D#bebebe>%%&lt;/TITLE&gt;&lt;/HEAD&gt;
#&lt;BODY&gt;&lt;H1&gt;Report for %</FONT><FONT =
color=3D#cdcd00>%username</FONT><FONT color=3D#bebebe>%%&lt;/H1&gt;
#%</FONT><FONT color=3D#cdcd00>%username</FONT><FONT color=3D#bebebe>%% =
logged in %</FONT><FONT color=3D#cdcd00>%count</FONT><FONT =
color=3D#bebebe>%% times, for a total of %</FONT><FONT =
color=3D#cdcd00>%total</FONT><FONT color=3D#bebebe>%% minutes.
#-----------------------------
#&lt;!-- fancy.template for Text::Template --&gt;
#&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;Report for =
{$user}&lt;/TITLE&gt;&lt;/HEAD&gt;
#&lt;BODY&gt;&lt;H1&gt;Report for {$user}&lt;/H1&gt;
#{ lcfirst($user) } logged in {$count} times, for a total of</FONT><FONT =
color=3D#43cd80> </FONT><FONT color=3D#bebebe>
#{ int($total / 60) } minutes.
#-----------------------------
</FONT><FONT color=3D#cdcd00>%fields</FONT> =3D <FONT =
color=3D#00ffff>(</FONT>
            <FONT color=3D#00cd00>username</FONT> =3D&gt; =
$whats_his_name,
            <FONT color=3D#00cd00>count</FONT>    =3D&gt; $login_count,
            <FONT color=3D#00cd00>total</FONT>    =3D&gt; $minute_used,
<FONT color=3D#00ffff>);</FONT>

<FONT color=3D#ff7f50>print</FONT> template<FONT =
color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"/home/httpd/templates/simple.template"</FONT>, \<FONT =
color=3D#cdcd00>%fields</FONT><FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
# <FONT size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch20/userrep">download =
the following standalone program</A></FONT>
#!/usr/bin/perl -w
# userrep1 - report duration of user logins using SQL database
</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT color=3D#b2dfee>DBI</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT color=3D#b2dfee>CGI</FONT> <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>:standard<FONT =
color=3D#00ffff>);</FONT>

<FONT color=3D#bebebe># template() defined as in the Solution section =
above
</FONT>$user =3D param<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"username"</FONT><FONT color=3D#00ffff>)</FONT>          =
         <FONT color=3D#98fb98>or</FONT> <FONT =
color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"No =
username"</FONT><FONT color=3D#00ffff>;</FONT>

$dbh =3D DBI-&gt;<FONT color=3D#98fb98>connect</FONT><FONT =
color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"dbi:mysql:connections:mysql.domain.com:3306"</FONT>,
    <FONT color=3D#00cd00>"connections"</FONT>, <FONT =
color=3D#00cd00>"seekritpassword"</FONT><FONT color=3D#00ffff>)</FONT>   =
    <FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Couldn't connect\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
$sth =3D $dbh-&gt;prepare<FONT color=3D#00ffff>(</FONT>&lt;&lt;<FONT =
color=3D#00cd00>"END_OF_SELECT"</FONT><FONT color=3D#00ffff>)</FONT>     =
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#00cd00>"Couldn't prepare SQL"</FONT><FONT =
color=3D#00ffff>;</FONT>
    SELECT COUNT<FONT color=3D#00ffff>(</FONT>duration<FONT =
color=3D#00ffff>)</FONT>,SUM<FONT color=3D#00ffff>(</FONT>duration<FONT =
color=3D#00ffff>)</FONT><FONT color=3D#43cd80> </FONT>
    FROM logins WHERE username=3D<FONT color=3D#00cd00>'$user'</FONT>
<FONT color=3D#ffa500>END</FONT>_OF_SELECT

<FONT color=3D#bebebe># this time the duration is assumed to be in =
seconds
</FONT><FONT color=3D#ffa500>if</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>@row</FONT> =3D =
$sth-&gt;fetchrow<FONT color=3D#00ffff>())</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#00ffff>(</FONT>$count, $seconds<FONT =
color=3D#00ffff>)</FONT> =3D <FONT color=3D#cdad00>@row</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT> <FONT color=3D#ffa500>else</FONT> <FONT =
color=3D#00ffff>{</FONT>
    <FONT color=3D#00ffff>(</FONT>$count, $seconds<FONT =
color=3D#00ffff>)</FONT> =3D <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdcd00>0</FONT>,<FONT color=3D#cdcd00>0</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>}</FONT><FONT color=3D#43cd80> </FONT>

$sth-&gt;finish<FONT color=3D#00ffff>();</FONT>
$dbh-&gt;disconnect<FONT color=3D#00ffff>;</FONT>

<FONT color=3D#ff7f50>print</FONT> header<FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#ff7f50>print</FONT> template<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"report.tpl"</FONT>, <FONT =
color=3D#00ffff>{</FONT><FONT color=3D#43cd80>   </FONT>
    <FONT color=3D#00cd00>'username'</FONT> =3D&gt; $user,
    <FONT color=3D#00cd00>'count'</FONT>    =3D&gt; $count,
    <FONT color=3D#00cd00>'total'</FONT>    =3D&gt; $total<FONT =
color=3D#43cd80> </FONT>
<FONT color=3D#00ffff>});</FONT>

<FONT color=3D#bebebe>#-----------------------------
</FONT>You owe: <FONT color=3D#00ffff>{</FONT>$total<FONT =
color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>The average was <FONT color=3D#00ffff>{</FONT>$count ?  <FONT =
color=3D#00ffff>(</FONT>$total/$count<FONT color=3D#00ffff>)</FONT> : =
<FONT color=3D#cdcd00>0</FONT><FONT color=3D#00ffff>}</FONT>.
<FONT color=3D#bebebe>#-----------------------------
# <FONT size=3D-1><A =
href=3D"http://pleac.sourceforge.net/include/perl/ch20/userrep2">download=
 the following standalone program</A></FONT>
#!/usr/bin/perl -w
# userrep2 - report duration of user logins using SQL database
</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Text::Template</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT color=3D#b2dfee>DBI</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>use</FONT> <FONT color=3D#b2dfee>CGI</FONT> <FONT =
color=3D#ff7f50>qw</FONT><FONT color=3D#00ffff>(</FONT>:standard<FONT =
color=3D#00ffff>);</FONT>

$tmpl =3D <FONT =
color=3D#00cd00>"/home/httpd/templates/fancy.template"</FONT><FONT =
color=3D#00ffff>;</FONT>
$template =3D Text::Template-&gt;new<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>-type</FONT> =3D&gt; <FONT =
color=3D#00cd00>"file"</FONT>, <FONT color=3D#00cd00>-source</FONT> =
=3D&gt; $tmpl<FONT color=3D#00ffff>);</FONT>
$user =3D param<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"username"</FONT><FONT color=3D#00ffff>)</FONT>          =
         <FONT color=3D#98fb98>or</FONT> <FONT =
color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"No =
username"</FONT><FONT color=3D#00ffff>;</FONT>

$dbh =3D DBI-&gt;<FONT color=3D#98fb98>connect</FONT><FONT =
color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"dbi:mysql:connections:mysql.domain.com:3306"</FONT>,
    <FONT color=3D#00cd00>"connections"</FONT>, <FONT =
color=3D#00cd00>"secret passwd"</FONT><FONT color=3D#00ffff>)</FONT>     =
    <FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Couldn't db connect\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
$sth =3D $dbh-&gt;prepare<FONT color=3D#00ffff>(</FONT>&lt;&lt;<FONT =
color=3D#00cd00>"END_OF_SELECT"</FONT><FONT color=3D#00ffff>)</FONT>     =
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> <FONT =
color=3D#00cd00>"Couldn't prepare SQL"</FONT><FONT =
color=3D#00ffff>;</FONT>
    SELECT COUNT<FONT color=3D#00ffff>(</FONT>duration<FONT =
color=3D#00ffff>)</FONT>,SUM<FONT color=3D#00ffff>(</FONT>duration<FONT =
color=3D#00ffff>)</FONT><FONT color=3D#43cd80> </FONT>
    FROM logins WHERE username=3D<FONT color=3D#00cd00>'$user'</FONT>
<FONT color=3D#ffa500>END</FONT>_OF_SELECT

$sth-&gt;execute<FONT color=3D#00ffff>()</FONT>                          =
   <FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Couldn't execute SQL"</FONT><FONT =
color=3D#00ffff>;</FONT>

<FONT color=3D#ffa500>if</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@row</FONT> =3D $sth-&gt;fetchrow<FONT =
color=3D#00ffff>())</FONT> <FONT color=3D#00ffff>{</FONT>
    <FONT color=3D#00ffff>(</FONT>$count, $total<FONT =
color=3D#00ffff>)</FONT> =3D <FONT color=3D#cdad00>@row</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT> <FONT color=3D#ffa500>else</FONT> <FONT =
color=3D#00ffff>{</FONT>
    $count =3D $total =3D <FONT color=3D#cdcd00>0</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>

$sth-&gt;finish<FONT color=3D#00ffff>();</FONT>
$dbh-&gt;disconnect<FONT color=3D#00ffff>;</FONT>

<FONT color=3D#ff7f50>print</FONT> header<FONT =
color=3D#00ffff>();</FONT>
<FONT color=3D#ff7f50>print</FONT> $template-&gt;fill_in<FONT =
color=3D#00ffff>();</FONT>

<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN1084>Mirroring Web Pages</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
  <TBODY>
  <TR>
    <TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>LWP::Simple</FONT><FONT color=3D#00ffff>;</FONT>
mirror<FONT color=3D#00ffff>(</FONT>$URL, $local_filename<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN1087>Creating a Robot</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
  <TBODY>
  <TR>
    <TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>LWP::RobotUA</FONT><FONT color=3D#00ffff>;</FONT>
$ua =3D LWP::RobotUA-&gt;new<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>'websnuffler/0.1'</FONT>, <FONT =

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -