Zum Inhalt springen

PERL:Erfahrung mit WWW:Mechanize und https ?


Empfohlene Beiträge

Hi,

ich bin am verzweifeln. Ich habe ein Problem mit dem WWW::Mechanize Modul.

hier genau zu lesen: Thread (diese Problem wurde gelöst)

Ich habe ein Testscript geschrieben, das nur bei google nach dem Wort Linux Suchen solll und mir den Quellcode der 1. Ergebnisseite ausgeben soll. Funktioniert wunderbar. Nun müsste ich aber auf eine https Seite und nicht auf eine http Seite. Dies sollte angeblich mit dem NET::SSLeay Modul funktionieren, wie es hier zu lesen ist: http://search.cpan.org/~petdance/WWW-Mechanize/lib/WWW/Mechanize/FAQ.pod#Why_don't_https://_URLs_work?

Aber ich komm einfach nicht dahinter, wie ich das in dem Scripr realisiere, bzw. wie ich das verwenden muss.

Vielleicht hat ja jemand schon so etwas mal mit dem WWW::Mechanize Modul gemacht und kann mir ein bisschen helfen oder nen Tipp geben. Kann schon gar nicht mehr klar denken :beagolisc

Danke schon mal

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mit LWP kannst Du eigentlich alles anstellen was man so braucht: http, https, ftp usw.

Um auf Deine Frage zurückzukommen hier mal ein Satz aus der Doku: "The method is a short string that tells what kind of request this is. The most common methods are GET, PUT, POST and HEAD". Da sollte doch alles dabei sein...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Jein. GET kannst Du schon verwenden. Um die SSL-Verschlüsselung mußt Du Dir dank LWP keine Gedanken machen. Die Webanfrage ist ja exakt die Gleiche wie ohne SSL. Der einzige Unterschied ist wirklich nur die Verschlüsselung...

CONNECT kenne ich eigentlich nur von Proxys die den SSL-Teil nicht entschlüsseln können.

Link zu diesem Kommentar
Auf anderen Seiten teilen

So ist es allem Anschein nach auch ;)

Hab grad mit nem Kollegen geredet und der meinte, dass der Proxy keine GET Anfragen auf eine https Seite erlaubt sondern nur CONNECT. Tja ich werd mal mit dem Hersteller Kontakt aufnehmen... ich halt euch bzw dich (:)) auf dem laufenden...

Aber Danke schonmal

Link zu diesem Kommentar
Auf anderen Seiten teilen

o_O

bin verwirrt :D

ich geb dir mal meinen Code und du sagst mir was ich dabei falsch mache ok?

use WWW::Mechanize;

use Crypt::SSLeay;

use LWP::UserAgent;

use Net::SMTP;

my $url = "https://meinepage.com";

my $name = "acc_feld_name";

my $name2 "pwd_feld_name";

my $value = "meinuser";

my $value2 = "meinpasswort";

my $button = "name_des_buttons";

my $agent=WWW::Mechanize->new(autocheck=>);

$agent->proxy(['http', 'https'], http://meinproxy:8080');

$agent->get($url);

$agent->field($name, $value);

$agent->field($name2, $value2);

$agent->click($button);

print $agent->content();

So geht es mit dem Mechanize...

Wie oder wo muss ich hier genau den LWP Code einbauen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich geb dir mal meinen Code und du sagst mir was ich dabei falsch mache ok?

Da gibt's leider zwei Probleme:

- ich hab mit dem WWW::Mecha... noch nie was gemacht, kann also nicht sagen wie der funktioniert

- ich bin derzeit zeitmäßig etwas arg in Bedrängnis und muss Dich leider auf die (sehr gute) LWP-Dokumentation vertrösten. Falls Dir Bücher lieber sein sollten: http://www.ora.de/catalog/perllwp/index.html

Link zu diesem Kommentar
Auf anderen Seiten teilen

UPDATE:

Also ich hab mit dem Proxy Hersteller gesprochen und der meinte, es gibt keine Möglichkeit, über den Proxy eine https Verbindung mittels "GET" zu etablieren. Funktioniert nur mit "CONNECT". Etz bin ich echt aufgeschmissen. Hat jemand vielleicht ne "Hacker" Idee? :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nochmals: das ist sch.... egal, weil das nicht Dein Problem ist.

Also folgendes: An einen Webserver stellst Du eine Anfrage per GET. Z.B. so: telnet <server> 80

GET / HTTP1.0<ret>

<ret>

<ab hier Antwort...>

Wenn jetzt SSL zum Einsatz kommt wird diese Anfrage einfach noch per SSL verschlüsselt. Das war's mehr ist da nicht. LWP kann mit SSL umgehen, funktioniert also.

Sobald jetzt ein Proxy dazwischen ist besteht hier das Problem, dass der Proxy die Daten nicht lesen kann wegen der Verschlüsselung. Deswegen stellt man am Proxy keine GET Anfrage sondern eine CONNECT Frage. Der Inhalt der verschlüsselten Anfrage ist aber immer noch eine GET.

Also folgendes: per LWP stellt man eine GET Anfrage mit SSL-Verschlüsselung. Die Verbindung über den Proxy mit CONNECT übernimmt LWP für Dich automatisch, mußt Dir deswegen also keine Gedanken machen...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bin endgültig verwirrt...

Mein script stellt aber keine CONNECT Anfrage an den Proxy sondern eine GET Anfrage, die der Proxy nicht zulässt. Problem meiner Meinung nach. Das LWP Modul kann meiner Meinung nach https nur über GET (hab in der Doku nicht ein Wort über ein CONNECT gefunden und im Modul selbst auch nicht) etablieren. Also: Mein Script stellt eine GET Anfrage über den Proxy an eine https Seite. Der Proxy sieht den Inhalt des Paketes unverschlüsselt, da erstes Paket des Verbingungsaufbaus, ergo verweigert er den Aufbau über GET. Das in den Modulen intern was mit "CONNECT" läuft weiss ich nicht, will es aber zu 100% nicht ausschliessen, hab nur nirgendwo kein Wort drüber gefunden. Hier mal die Meldung des Proxys:

1090582641.585 35 <meine IP> TCP_NC_MISS/400 2164 GET https://diehttpspage.com/ - NONE/-

Bei deiner Methode terminierst du die https Verbindung am proxy selbst oder?

Oder reden wir aneinander vorbei?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Folgendes: im LWP stellst Du ein wo der Proxy steht. Dann tust du ganz normal Deine GET-Anfrage bauen. Die Connect-Verbindung zum Proxy erledigt das LWP für Dich ohne das Du Dich darum kümmern mußt (außer zu sagen wo der Proxy steht...).

Alles was Du also brauchst ist die GET mit LWP und aktiviertem Proxy.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also entweder ich bin echt zu blöd oder es geht wirklich ned.

hier mein script

#! usr/bin/perl -w

use LWP;

print "$LWP::VERSION\n";

my $browser = LWP::UserAgent->new();

$browser->proxy(['http', 'https'], 'http://meinproxy:8080');

$url = 'htpps://meinehttpsseite.com';

my $response = $browser->get($url);

my $content 0 $response->content();

print $content();

Am Proxy wieder die selbe SCH**** :(

der stellt ne GET Anfrage... keine Ahnung warumm... irgendwie peilt der des mit dem "CONNECT" ned

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...