urllib2 header error:TypeError:sendall()参数1必须是字符串或缓冲区,而不是dict

时间:2011-10-07 22:02:11

标签: python header urllib2

def download(url):
    print url
    user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'
    headers = {'User-Agent' : user_agent }    
    request = urllib2.Request(url, headers)
    response = urllib2.urlopen(request)
    return response

我在这里做错了什么?我正在使用文档中的确切示例:

http://docs.python.org/howto/urllib2.html#headers

1 个答案:

答案 0 :(得分:7)

您没有使用确切的示例。这个例子有:

req = urllib2.Request(url, data, headers)

虽然你有:

request = urllib2.Request(url, headers)

因为这些是位置参数,所以保持它们是正确的很重要。第二个参数是一串数据,您需要提供:

request = urllib2.Request(url, "", headers)