2017-11-20 4 views
1

Ich muss eine FTP-URL über HTTP mit Python holen. Ich muss dies über einen HTTP-Proxy tun, der den Ziel-FTP-Eintrag als HTML-Seite zurückgibt.Fetch FTP URL über HTTP mit Python über HTTP-Proxy

Ich habe Requests und ftplib ausprobiert, aber beide schauen auf das Protokoll und versuchen, den FTP-Proxy anstelle des HTTP-Proxy zu verwenden.

Ich brauche Python, um das Protokoll in der angegebenen URL zu ignorieren und über HTTP GET nur die angeforderte URL an den HTTP-Proxy-Server übergeben.

Hier ist ein Beispiel wget Sitzung, die ich in Python zu reproduzieren bin versucht:

Connecting to PROXY connected. 
Created socket 3. 
Releasing 0x000055f4bc243ed0 (new refcount 1). 

---request begin--- 
GET ftp://ftp.mcafee.com/commonupdater/current/vscandat1000/dat/0000/ HTTP/1.1 
User-Agent: Wget/1.19.2 (linux-gnu) 
Accept: */* 
Accept-Encoding: gzip 
Host: ftp.mcafee.com 
Connection: Keep-Alive 
Proxy-Connection: Keep-Alive 

---request end--- 
Proxy request sent, awaiting response... 
---response begin--- 
HTTP/1.1 200 OK 
Via: 1.1 XXX.XXX.XXX.XXX 
Content-Type: text/html; charset=utf-8 
Content-Length: 20494 
Proxy-Connection: Keep-Alive 

---response end--- 
200 OK 
Registered socket 3 for persistent reuse. 
URI content encoding = ‘utf-8’ 
Length: 20494 (20K) [text/html] 
Saving to: ‘index.html’ 
+0

Halten Sie eine einfache Steckdose an dem Proxy-Öffnung und die HTTP-Anforderung zu senden? –

Antwort

1

httplib Verwenden Sie eine HTTP-Verbindung über einen Proxy für jede URL unabhängig vom Protokoll erzwingen.

conn = httplib.HTTPConnection(proxy_host, proxy_port) 
conn.request("GET", ftp_url) 
resp = conn.getresponse() 
body = resp.read()