Perl mime, vagy hogyan lehet weboldalt postázni
Ez a cikk megmondja, hogyan kell
a Perl modulok LWP :: UserAgent és MIME :: Lite letöltésével
HTML oldal, és küldje el egy levelet a
minden beágyazott kép.
Alkalmaztam ezt a módszert, én naponta
Friss vicceket kapok a levelemben
doboz - Nos, lusta vagyok, hogy másnap felmásolok az Inetbe
🙂
- LWP :: UserAgent - egyéni osztály
WWW ügynökök
dokumentum
másodpercben
anekdoták site / an / year hónap / o év month day.html
és az évtől csak az utolsó kettőt
számokat, a hónapot és a napot pedig a 2
karakterek balra nullákkal, ha szükséges.
Egy kis lírai dimenzió azok számára,
aki csak elkezdte elsajátítani a Perl-t.
Hogyan töltsük le a WEB oldalt?
Üzenet elküldése mellékletekkel
fájlokat?
Tekintsük a program lépéseit.
- Határozza meg a dokumentum URL-jét
- Töltse le a WEB oldal tartalmát
- Az összes tartalmat keresjük és töltjük le
képoldal
abszolút értékük
A forgatókönyv technikai megvalósítása
írjon le sematikusan, ha valami nem
megérteni - lásd a forrást.
C ANEKDOT.RU a tegnapi történeteket. Számoljuk ki
tegnap - éjfél. kiegészítés
idõpont a bal oldalon található nullákkal.
$ sutki = 24 * 60 * 60;
($ tek_day, $ tek_month, $ tek_year) = (lokális időtartam) [3,4,5];
$ in1 = timelocal (0,0,0, $ tek_day, $ tek_month, $ tek_year);
$ in2 = $ in1- $ sutki;
($ tek_day, $ tek_month, $ tek_year) = (lokális idő ($ in2)) [3,4,5];
$ tek_month ++; $ tek_year + = 1900;
ha ($ tek_month<10)
$ tek_month = "0." $ tek_month
>
ha ($ tek_day<10)
$ tek_day = "0." $ tek_day;
>
$ an_year = substr ($ tek_year, 2, 2);
Töltse le az oldal tartalmát a következővel:
modul LWP.
ha ($ url_page) $ url_page =
/ ^ (https? | ftp | fájl | nntp): \ / \ //)
my $ req = új HTTP :: Request ('GET' => $ url_page);
my $ res = $ ua-> kérés ($ req);
$ gabarit = $ res-> tartalom;
>
külső CSS = '\ n ";
dokumentum HTML =
my $ analyseur = HTML :: LinkExtor-> új;
$ analyseur-> parse ($ gabarit);
én @l = $ analyseur-> linkek; foreach my $ url (@l)
az $ urlAbs = URI :: WithBase-> új ($$ url [2], $ racinePage) -> abs;
chomp $ urlAbs;
ha (($$ url [0] eq 'a') ($$ url [1] eq 'href') ($$ url [2])
($$ url [2]!
s / \ s href = ["']? $$ url [2] ["']? / href = "$ urlAbs" / gimx;
>
>
Válasszon a dokumentumból az összes kép,
töltse le a képet, határozza meg a típust és
küldje vissza, MIME kódolású.
ha (((lc ($$ url [0]) eq 'img') || (lc ($$ url [0]) eq
'Src')))
push (@mail, create_image_part ($ urlAbs));
>
ha (lc ($ ur) =
/ jpg $ /)
$ type = "image / jpg";
>
más
$ type = "application / x-shockwave-flash";
>
my $ res2 = $ ua-> kérés (új HTTP :: Request ('GET' => $ ur));
$ buff1 = $ res2-> tartalom;
$ file_name = substr ($ ur, rindex ($ ur, "/") + 1, hossza ($ ur));
# kódolja a következő képet az én
$ mail = új MIME :: Lite (Data => $ buff1, Encoding => 'base64', 'Filename' => $ file_name);
$ mail-> attr ('Content-type' => $ típus); $ mail-> attr ('Tartalom-hely' => $ ur);
Hozzon létre egy MIME objektumot, adja meg, kinek és mikor
akinek a levél, az üzenet tárgya. Ha a
nincs képoldal - üzenet típusa szöveg / html,
ha vannak képek - több rész / kapcsolódó.
$ mail = új MIME :: Lite 'From' => '[email protected]',
'To' => $ to_email, 'Subject' => $ url_page, 'Adat' => $ html; $ mail-> attr ("Content-type"
=> $ content_type);
ha (@mail)
$ mail-> replace ("Type" => "több rész / kapcsolódó");
# Csatoljon minden képet
foreach (@mail)>
>
Az oldalt postai úton küldjük el. Tudod
használjon SMTP-t vagy sendmail-t.
Szkriptünket a címtárba helyeztük, ahonnan
a programok végrehajtása engedélyezett és
fájl végrehajtható
chmod 750 /usr/local/www/cgi-bin/html_on_email3.pl
Annak érdekében, hogy végül minden
automatizálja, leteszi a forgatókönyvet a CRON-on.
Ehhez adjon hozzá egy sort az / etc / crontab fájlhoz
0 9 * * * root /usr/local/www/cgi-bin/html_on_email3.pl
és minden reggel 9 órakor olvassa el a frisset
anekdoták.
Végezetül szeretném megjegyezni, hogy mindent meg lehet tenni
másképp írták, szebbé.
De a program működik, de mégis belőle
nem szükséges 🙂
Ossza meg ezt a cikket barátaival: