mechanize + proxy + SSL

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
da.dom
User
Beiträge: 114
Registriert: Dienstag 10. Juni 2008, 14:42

Tag Zusammen,

der Titel sagt ja im Grunde schon alles was ich tuen will, ich versuche mit mechanize über einen Proxy eine (ok: mit Passwort versehene) SSL - Seite auf zu rufen. Scheinbar mache ich da irgendetwas falsch:

Code: Alles auswählen

import mechanize

url="https://somehttpsUrl.de"
browser=mechanize.Browser()
optional.
browser.set_proxies({"http": "proxy.de:8080","https": "proxy.de:8080"})

browser.add_password(url,"username","password")
browser.open(url)
baseHTML=browser.response().read()
print baseHTML
Aufruf von "normalen" Seiten (google und dergleichen) funtkioniert problemslos, wodurch ich vermute das es die Kombination von Proxy + SSL mir hier probleme bereitet:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\eclipseGanymadeSR2\workspace\dcodingSVN\Programme\Python\PHPMyAdminBackup.py", line 9, in <module>
    browser.open(url)
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 206, in open
    return self._mech_open(url, data)
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 232, in _mech_open
    response = UserAgentBase.open(self, request, data)
  File "build\bdist.win32\egg\mechanize\_opener.py", line 181, in open
    response = urlopen(self, req, data)
  File "C:\Java\Python\lib\urllib2.py", line 399, in _open
    '_open', req)
  File "C:\Java\Python\lib\urllib2.py", line 360, in _call_chain
    result = func(*args)
  File "build\bdist.win32\egg\mechanize\_http.py", line 741, in https_open
    return self.do_open(conn_factory, req)
  File "build\bdist.win32\egg\mechanize\_http.py", line 691, in do_open
    raise URLError(err)
URLError: <urlopen error (1, 'error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol')>

Alternativ hatte ich versuch keinen Proxy explizit an zu geben. Ergebnis war, das Google & Co weiterhin funktionieren, der Aufruf der SSL Seite nun aber zu dieser Fehlermeldung führt:

Code: Alles auswählen

Traceback (most recent call last):
  File "C:\eclipseGanymadeSR2\workspace\dcodingSVN\Programme\Python\PHPMyAdminBackup.py", line 9, in <module>
    browser.open(url)
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 206, in open
    return self._mech_open(url, data)
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 232, in _mech_open
    response = UserAgentBase.open(self, request, data)
  File "build\bdist.win32\egg\mechanize\_opener.py", line 181, in open
    response = urlopen(self, req, data)
  File "C:\Java\Python\lib\urllib2.py", line 399, in _open
    '_open', req)
  File "C:\Java\Python\lib\urllib2.py", line 360, in _call_chain
    result = func(*args)
  File "build\bdist.win32\egg\mechanize\_http.py", line 741, in https_open
    return self.do_open(conn_factory, req)
  File "build\bdist.win32\egg\mechanize\_http.py", line 691, in do_open
    raise URLError(err)
URLError: <urlopen error (11001, 'getaddrinfo failed')>
Hoffe auf tatkräftige Unterstützung
Dom
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Hallo, eventuell musst du explizit den Port 443 für SSL angeben, wie eine Google-Suche mich vermuten lässt.

Code: Alles auswählen

url="https://somehttpsUrl.de:443"
da.dom
User
Beiträge: 114
Registriert: Dienstag 10. Juni 2008, 14:42

mh komischerweise hat sich die Fehlermeldung heute ein wenig verändert. Er scheint jetzt zumindest eine Verbindung zur Webseite aufbauen zu können, wird aber zurück gewiesen :)

Code: Alles auswählen

line 12, in <module>
    browser.open(url)
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 206, in open
    return self._mech_open(url, data)
  File "build\bdist.win32\egg\mechanize\_mechanize.py", line 257, in _mech_open
    raise response
httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt

Datz ebenfalls jemand eine gute Idee? (hatte schon versucht den UserAgent zu verändern:
browser.addheaders = [('User-agent', 'My Own One')]
hat aber scheinbar kein Erfolg gebracht)

Grüße
D
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

da.dom hat geschrieben:Datz ebenfalls jemand eine gute Idee?
Ja: die Bitte des Betreibers akzeptieren und seine Seite nicht scrapen, wenn er das nicht will.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
snafu
User
Beiträge: 6738
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Mechanize bietet eine eigene Option zum Ignorieren der `robots.txt`. Das sollte man aber eigentlich nicht machen. Die Datei hat ja durchaus ihren Sinn.
Antworten