在Python中打开一个URL

时间:2014-01-09 11:01:03

标签: python httprequest urlopen

如何在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作为第二个参数时,它可以工作。因此,它必须是服务器不喜欢的代理。

2 个答案:

答案 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()