使用Python通过HTTP代理通过HTTP获取FTP URL

时间:2017-11-20 16:10:32

标签: python proxy ftp

我需要通过HTTP使用Python获取FTP URL。我必须通过HTTP代理执行此操作,该代理将目标FTP列表作为HTML页面返回。

我尝试了Requests和ftplib,但他们都看了协议并尝试使用FTP代理,而不是HTTP代理。

我需要Python忽略提供的URL中的协议,只需通过HTTP GET将请求的URL传递到HTTP代理服务器。

以下是我尝试在Python中重现的wget会话示例:

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’

1 个答案:

答案 0 :(得分:1)

使用httplib,您可以通过代理强制HTTP连接任何URL,无论协议如何。

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