目标:一个循环遍历代理列表并发送一个帖子请求的脚本,其中包含一个文件到我服务器上的PHP页面,然后计算交付时间。这是一个非常无用的脚本,但我用它来教自己关于urllib2。
问题:到目前为止,我已经使用Poster正确发送了多部分/表单数据,但我无法通过代理发送它,更不用说循环列表代理人我已经尝试使用带有urllib2.ProxyHandler
的OpenerDirector,但我相信Poster
定义了它自己的开启者来执行它的魔力。
以下是使用海报发送multipart / form-data请求的代码。
import urllib2
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
fields = {"type": "image",
"fileup": open("/home/chaz/pictures/test.jpg", "rb")
}
register_openers() #I believe this is the key
datagen, headers = multipart_encode(fields)
request = urllib2.Request("http://foo.net", datagen, headers)
lastResponse = urllib2.urlopen(request).read()
任何帮助都会非常感激,因为我很难过。
答案 0 :(得分:5)
您可以在请求页面之前添加这样的代理安装程序。
from urllib2 import ProxyHandler,build_opener,install_opener
PROXY="http://USERNAME:PASSWD@ADDRESS:PORT"
opener = build_opener(ProxyHandler({"http" : PROXY}))
install_opener(opener)