如何在Python中打开包含变量和键值的URL? 我尝试如下,但我得到了一个400坏请求。但是,在我的Web浏览器中打开文件(主机)似乎没有任何问题。也许代理?
for verb in verbs:
host = 'http://google.no/blabla?text=' + verb + '&pos=Any'
checktext = '<font color="maroon">' + verb + '</font>'
params = {'http': 'http://www.someproxy.com:3128'}
req = urllib2.Request(host, urllib.urlencode(params))
res = urllib2.urlopen(req)
print res.read()
NB:明白了。当我在req(urllib.urlencode(params))中将None作为第二个参数时,它可以工作。因此,它必须是服务器不喜欢的代理。
答案 0 :(得分:0)
我不确定你在params
做了什么。 urllib2.Request
的第二个参数是POST到服务器的数据。
使用Request
设置代理的方法是致电req.set_proxy(host, type)
- 请参阅the documentation。
答案 1 :(得分:0)
尝试使用urllib2.build_opener:
import urllib2,cookielib
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookielib.CookieJar()))
url = 'http://google.no/blabla'
for verb in verbs:
data = '?text=' + verb + '&pos=Any' # not really sure how to fit your 'params' in here
socket = opener.open(url,data)
print socket.read()