Welches Modul sollte man verwenden um einen Internetserver z
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.
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
BlackJack hat schon recht nimm urllib oder urllib2.
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
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
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

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.
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";
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Genau!veers hat geschrieben:Browser nachbauen tönt nach Mechanize
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.