我试图编辑Tristan的答案并添加一些信息,但似乎SO编辑队列已满,因此,我写下了这个答案,因为我曾经非常困扰于如何使用Python请求现有的cookies。
- 首先,从Chrome获取cookies。最简单的方法是使用一个名为“cookies.txt”的扩展程序。
https://chrome.google.com/webstore/detail/get-cookiestxt/bgaddhkoddajcdgocldbbfleckgcbcid/related
下载这些cookie后,请使用以下代码来确保您能够无误地解析文件。
import re, requests, pprint
def parseCookieFile(cookiefile):
"""Parse a cookies.txt file and return a dictionary of key value pairs
compatible with requests."""
cookies = {}
with open (cookiefile, 'r') as fp:
for line in fp:
if not re.match(r'^\#', line):
lineFields = re.findall(r'[^\s]+', line)
try:
cookies[lineFields[5]] = lineFields[6]
except Exception as e:
print (e)
return cookies
cookies = parseCookieFile('cookies.txt')
pprint.pprint(cookies)
接下来,使用Python Request库与这些cookie进行交互。
x = requests.get('your__url', verify=False, cookies=cookies)
print (x.content)
这应该能帮助你避免去不同的SO帖子上尝试那些对我从未起作用的cookielib和其他方法,节省你的时间。