如何从文件加载 Netscape cookie 以对网站 REST API 进行身份验证 使用 python requests[session]、pycurl 或其他什么? 类似于curl -b ${home}.cookie
-b, --cookie (HTTP) 将数据作为 cookie 传递到 HTTP 服务器。据说是之前从服务器收到的数据 在“Set-Cookie:”行中。数据应采用以下格式 “名称1=值1;名称2=值2”。
import requests
from requests.auth import HTTPDigestAuth
proxi = {'http': 'http://proxy',
'https': 'http://proxy'}
url = 'http://192.196.1.98:8080/a/changes/?q=status:new'
r = requests.get(url, proxies=proxi) #cookies=cookie
print r.status_code
print r.json()
print r.headers
print r.request.headers
print r.text
Python 请求库快速入门指南 有一个关于 cookie 的部分。它详细介绍了一个名为
RequestsCookieJar
的用于保存 cookie 的类,您需要通过手动解析 Netscape cookie 文件来将 cookie 加载到其中。
import requests
# Open cookie file
cookies_txt = open(r"cookies.txt")
# Initialize RequestsCookieJar
jar = requests.cookies.RequestsCookieJar()
for line in cookies_txt.readlines():
words = line.split()
# Filter out lines that don't contain cookies
if (len(words) == 7) and (words[0] != "#"):
# Split cookies into the appropriate parameters
jar.set(words[5], words[6], domain=words[0], path=words[2])
# Make the request
url = "https://website.com"
website = requests.get(url, proxy=proxi, cookies=jar)