使用Python发送Netscape Cookie

问题描述 投票:0回答:1

如何从文件加载 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 cookies python-requests pycurl
1个回答
0
投票

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)
© www.soinside.com 2019 - 2024. All rights reserved.