如何从Chrome复制Cookie?

eivgtgni  于 2023-04-03  发布在  Go
关注(0)|答案(6)|浏览(742)

我使用bash来发布到一个需要我先登录的网站。所以我需要发送带有登录cookie的请求。所以我尝试登录并保留cookie,但它不起作用,因为该网站使用javascript以一种非常奇怪的方式散列密码,所以我打算从Chrome中获取我的登录cookie。如何从Chrome中获取cookie并将其格式化为Curl?
我正在努力做到这一点:

curl --request POST -d "a=X&b=Y" -b "what goes here?" "site.com/a.php"
vkc1a9a2

vkc1a9a21#

1.按F12打开开发人员控制台(Mac:Cmd+Opt+J)
1.查看网络选项卡。
1.在网站上做任何你需要做的事情来触发你感兴趣的动作
1.右键点击相应的请求,选择“复制为cURL”
这将给予您触发的操作提供curl命令,完全填充了cookie和所有内容。当然,您也可以复制标志作为新curl命令的基础。

ffdz8vbo

ffdz8vbo2#

在Chrome中:

  • 打开web developer tools(查看-〉developer -〉developer tools)
  • 打开“应用程序”选项卡(在旧版本上,请单击“参考资料”)
  • 打开Cookie树
  • 找到您感兴趣的cookie。

在航站楼内

  • --cookie "cookiename=cookievalue"添加到您的curl请求中。
t1rydlwq

t1rydlwq3#

在Chrome/Chromium中有一种更简单的方法。

开源Chrome扩展cookies.txt将cookie数据导出到cookies.txt文件中,并生成一个可选的现成wget命令。

  • 我与扩展无关,它只是工作得非常好。
7nbnzgx9

7nbnzgx94#

真不敢相信竟然没有人提到这一点。这是最简单快捷的方法。
只需打开浏览器的Developer Tools,单击Console选项卡,最后在控制台中,只需键入以下内容并按Enter...

console.log(document.cookie)

结果将立即以正确的语法打印出来。只需突出显示并复制即可。

ttp71kqs

ttp71kqs5#

我很好奇,如果其他人报告说, chrome 不允许“复制为 curl ”功能有饼干了。
然后我想到这就像一个安全的想法。如果你访问example.com,复制请求作为curl到example.com将有cookie。然而,复制请求到其他域或子域将净化cookie。例如a.example.comtest.com将没有cookie。

jogvjijk

jogvjijk6#

对于任何想要网站的所有cookie,但不想使用扩展的人:

  • 打开开发者工具-〉应用程序-〉Cookie。
  • 选择列表中的第一个cookie并点击Ctrl/Cmd-A
  • 使用Ctrl/Cmd-C复制此表中的所有数据

现在你有了一个TSV(制表符分隔值)字符串的cookie数据。你可以用任何你想要的语言来处理它,但是在Python中(例如):

import io
import pandas as pd

cookie_str = """[paste cookie str here]"""

# Copied from the developer tools window.
cols = ['name', 'value', 'domain', 'path', 'max_age', 'size', 'http_only', 'secure', 'same_party', 'priority']

# Parse into a dataframe.
df = pd.read_csv(io.StringIO(cookie_str), sep='\t', names=cols, index_col=False)

现在,您可以将它们导出为Netscape格式:

# Fill in NaNs and format True/False for cookies.txt.
df = df.fillna(False).assign(flag=True).replace({True: 'TRUE', False: 'FALSE'})
# Get unix timestamp from max_age
max_age = (
    df.max_age
    .replace({'Session': np.nan})
    .pipe(pd.to_datetime))
start = pd.Timestamp("1970-01-01", tz='UTC')
max_age = (
    ((max_age - start) // pd.Timedelta('1s'))
    .fillna(0)  # Session expiry are 0s
    .astype(int))  # Floats end with ".0"
df = df.assign(max_age=max_age)

cookie_file_cols = ['domain', 'flag', 'path', 'secure', 'max_age', 'name', 'value']
with open('cookies.txt') as fh:
  # Python's cookiejar wants this header.
  fh.write('# Netscape HTTP Cookie File\n')
  df[cookie_file_cols].to_csv(fh, sep='\t', index=False, header=False)

最后,回到shell:

# Get user agent from navigator.userAgent in devtools
wget -U $USER_AGENT --load-cookies cookies.txt $YOUR_URL

相关问题