python urllib向头信息添加功能

时间:2015-03-17 23:15:02

标签: python http-headers urllib

原谅我缺乏知识,但我无法找到解决这个简单语法问题的方法。

requestHdr = (
            'Host: amazon.com\r\n'
            'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0 Iceweasel/31.4.0\r\n' 
            'Accept: */*\r\n'
            'Accept-Language: en-US,en;q=0.5\r\n'
            'Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n'
            'Origin: http://amazon.com\r\n'
            'Pragma: no-cache\r\n'
            'ID: str(uuid.uuid1())[:6]' 
            'Cache-Control: no-cache\r\n\r\n'
            'Connection: Close\r\n')

我正在尝试将此函数str(uuid.uuid1())[:6]添加到“ID:id number”标题中的标题中。但我的语法问题不正确。

1 个答案:

答案 0 :(得分:0)

您必须使用简单的+运算符连接字符串(将它们合并在一起)。您可以在使用字符串的任何地方执行此操作,

requestHdr = (
        'Host: amazon.com\r\n'
        'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0 Iceweasel/31.4.0\r\n' 
        'Accept: */*\r\n'
        'Accept-Language: en-US,en;q=0.5\r\n'
        'Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n'
        'Origin: http://amazon.com\r\n'
        'Pragma: no-cache\r\n'
        'ID: ' + str(uuid.uuid1())[:6] 
        'Cache-Control: no-cache\r\n\r\n'
        'Connection: Close\r\n')

对于您不想使用+运算符的地方(它可能会使代码看起来有点混乱),您可以使用str.format方法以相同的方式使用,如下所示: str.format是一种可用于在任何地方将变量插入字符串的方法。只需在字符串中插入{},最后使用.format()插入您需要添加的内容(当然,作为format的参数!)

requestHdr = (
    'Host: amazon.com\r\n'
    'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0 Iceweasel/31.4.0\r\n' 
    'Accept: */*\r\n'
    'Accept-Language: en-US,en;q=0.5\r\n'
    'Content-Type: application/x-www-form-urlencoded; charset=UTF-8\r\n'
    'Origin: http://amazon.com\r\n'
    'Pragma: no-cache\r\n'
    'ID: {}'.format(str(uuid.uuid1())[:6])
    'Cache-Control: no-cache\r\n\r\n'
    'Connection: Close\r\n')