Welches Modul sollte man verwenden um einen Internetserver z

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
KaiAllard
User
Beiträge: 9
Registriert: Mittwoch 8. November 2006, 16:59

Hallo, ich möchte eine bestimmte Datenbank erreichen und dort ein paar Informationen erfragen. Um genauer zu sein ich möchte keinen direkten Zugang, sondern möchte nur Ihren Server erreichen und dort ein Form auf einer Seite ausfüllen abschicken und die Resultseiten verfolgen dort ein paar Kästchen anklicken und wieder senden. Also ich brache ein Modul das mir einen Browser nachstellt. Danke euch.
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

urllib(2)
TUFKAB – the user formerly known as blackbird
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Für eine Optimale Lösung musst du uns schon sagen um was für ein Protokoll es sich handelt.
socket.socket(socket.AF_INET, socket.SOCK_RAW, proto) damit ist es sicher möglich ;)
BlackJack

Er möchte einen Browser nachstellen. Welches Protokoll wird das wohl sein. :roll:
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

BlackJack hat schon recht nimm urllib oder urllib2.

Code: Alles auswählen

>>> import urllib2
>>> f = urllib2.urlopen('http://www.python.org/')
>>> print f.read(100)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?xml-stylesheet href="./css/ht2html
damit es sich jedoch wie ein Browser verhält musst du noch die Header mitgeben sonst steht im Server Log irgend was von User Client Python.
Würde jetzt auch ein bsp posten ist aber auf externer Platte und es ist gerade mega Gewitter habe nur noch Laptop auf Akku und DSL Modem + Router laufen ;-)
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

BlackJack hat geschrieben:Er möchte einen Browser nachstellen. Welches Protokoll wird das wohl sein. :roll:
Mein Fehler, habe ich überlesen. Browser nachbauen tönt nach Mechanize :)
KaiAllard
User
Beiträge: 9
Registriert: Mittwoch 8. November 2006, 16:59

Vielen Dank für eueren input. Ich habe mich aber leider mit der Beschreibung des Moduls nicht ausgekannt. Leider ist es nicht so gut geschrieben wie die auf CPAN. Könntet ihr mir helfen dieses kleine vereinfachte perl script in Python zu übersetzen. Ich danke euch vielmals. Wenn ich das skript kommentieren soll bitte fragen. Aber vereinfacht sind es vier Schritte.

Geh zur Seite chemfate.
Fülle dort die erste form aus mit der casnummer.
Geh zur Folgeseite und check eine box.
Folge wieder der resultpage und save die seite.

Code: Alles auswählen

#!/usr/bin/perl;

use strict;
use warnings;
use LWP;
use WWW::Mechanize;
use URI::URL;
use File::Spec;
use File::Copy;
use Data::Dumper;

my $mech = WWW::Mechanize->new();
my $url = URI->new("http://www.syrres.com/esc/chemfate.htm");
print "Enter a cas#: ";
chomp(my $cas = <STDIN>);

my $chlorine = "7782-50-5";

$mech->get($url);
if($mech->success())
{
    $mech->form_number(1);
    $mech->set_fields(CASNUM => $cas);
	$mech->submit();
}
if($mech->success())
{
    $mech->tick("CHECK1", "06");
    $mech->submit();
}
if($mech->success())
{
    $mech->save_content("Chemfate_".$cas.".html");
}

exit print "Time elapsed since start of program: ", (time() - $^T), " sec \n";
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

veers hat geschrieben:Browser nachbauen tönt nach Mechanize :)
Genau!
Mechanize ist das richtige Werkzeug dafür. --> http://wwwsearch.sourceforge.net/ClientForm/

ClientForm gehört zu Mechanize.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
KaiAllard
User
Beiträge: 9
Registriert: Mittwoch 8. November 2006, 16:59

Oh ja... Genau das ist es... Danke dir.
Antworten