dummabua Geschrieben 16. Juli 2004 Teilen Geschrieben 16. Juli 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 21. Juli 2004 Teilen Geschrieben 21. Juli 2004 Mit dem Modul habe ich keine Erfahrungen... Eine andere Frage: warum nimmst Du nicht LWP (http://search.cpan.org/~gaas/libwww-perl-5.800/lib/LWP.pm)? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dummabua Geschrieben 21. Juli 2004 Autor Teilen Geschrieben 21. Juli 2004 danke... erstmal Weil ich mit diesem Modul meines Wissens nach keine Formulare ausfüllen kann... deswegen wurde ich auf das Mechanize Modul verwiesen (welches afaik auf das LWP Modul aufbaut). Oder täusche ich mich? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 21. Juli 2004 Teilen Geschrieben 21. Juli 2004 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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dummabua Geschrieben 21. Juli 2004 Autor Teilen Geschrieben 21. Juli 2004 aber bei https funktioniert GET tec nicht... des muss doch über "CONNECT" laufen... oder? Also so weit ich des verstehe kann ich damit nicht alles machen, was ich brauche Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 21. Juli 2004 Teilen Geschrieben 21. Juli 2004 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dummabua Geschrieben 21. Juli 2004 Autor Teilen Geschrieben 21. Juli 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 21. Juli 2004 Teilen Geschrieben 21. Juli 2004 Stimmt. Das ist aber nicht Dein Problem. Benutze LWP mit einer GET-Anfrage und LWP wird für Dich am Proxy die CONNECT-Anfrage stellen. Das war's. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dummabua Geschrieben 21. Juli 2004 Autor Teilen Geschrieben 21. Juli 2004 o_O bin verwirrt 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 21. Juli 2004 Teilen Geschrieben 21. Juli 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dummabua Geschrieben 21. Juli 2004 Autor Teilen Geschrieben 21. Juli 2004 Hi, danke trotzdem für deine Hilfe... vielleicht findest ja demnächst mal nochmal Zeit... des Buch werd ich gleich mal beschaffen Danke nochmal PS: Wenn ichs fertig bringen sollte, werde ich die Lösung natürlich posten Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dummabua Geschrieben 23. Juli 2004 Autor Teilen Geschrieben 23. Juli 2004 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 23. Juli 2004 Teilen Geschrieben 23. Juli 2004 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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dummabua Geschrieben 23. Juli 2004 Autor Teilen Geschrieben 23. Juli 2004 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dr.disk Geschrieben 23. Juli 2004 Teilen Geschrieben 23. Juli 2004 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dummabua Geschrieben 23. Juli 2004 Autor Teilen Geschrieben 23. Juli 2004 Okay, dann probier ichs mal nur mit reinem LWP... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dummabua Geschrieben 23. Juli 2004 Autor Teilen Geschrieben 23. Juli 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 23. Juli 2004 Teilen Geschrieben 23. Juli 2004 $url = 'htpps://meinehttpsseite.com'; muss doch $url = 'https://meinehttpsseite.com'; heißen oder? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
dummabua Geschrieben 26. Juli 2004 Autor Teilen Geschrieben 26. Juli 2004 Du hast recht, heisst es auch im Script... hab mich nur verschrieben Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.