鱼C论坛

 找回密码
 立即注册
查看: 80|回复: 9

[已解决]怎么把这种格式的cookie变成 netscape format的呢?

[复制链接]
发表于 2024-5-6 23:39:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
x1.com的cookie导出如下,怎么把它变成 netscape format的呢?

cookie2 = """buvid3=0442E694-B36B-DE00-98A1-83501638infoc; b_nut=1697693201; _uuid=9C9BBFA7-C248-C17DB4327D9DFC502792infoc; enable_web_push=DISABLE; header_theme_version=CLOSE; rpdid=|(k|~k~JuJRl0J'u~|u)Yu~lu; DedeUserID=499782751; DedeUserID__ckMd5=82111cfe2913801d; fingerprint=8e100a0b1d7cb081442112b1b32f5b11; buvid_fp_plain=undefined; buvid4=6DAC1448-68C5-78DA-C071-CCD51EF23-B2Y1vFpwbkjPs6%2BAXpRrZg%3D%3D; buvid_fp=8e100a0b1d7cb081442112b1b32f5b11; hit-dyn-v2=1; home_feed_column=4; FEED_LIVE_VERSION=V8; CURRENT_QUALITY=80; share_source_origin=weixin; bp_video_offset_499782751=925347289460899861; LIVE_BUVID=AUTO6317147048727573; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpzMsImlhdCI6MTcxNDcwNDgxMywicGx0IjotMX0.Ax7zsAzqN5zSiH6x7koyvVZtnpTyOvUrz5QSX9frObY; bili_ticket_expires=1714964013; bsource=search_baidu; CURRENT_FNVAL=4048; SESSDATA=fcc1137a%2C1730445864%2C7e434%2A52CjACfH7leT2Ndbjnv01p_7P-3U7ekQh4ASVkhYR2lST0JhMkdYUlR6MVBOVTZvNVNtTDY1WTJ2ZERyOXRGVFhEUWdyclBCdmp4MXpfZ2ZMbXEwXzV2M1d0c1dEN0tzdDBxNWFEVndmcVZ3TlVsUnRnIIEC; bili_jct=efc31b7e92996f4454ef5c19a403430b; sid=8kwsf7qc; browser_resolution=1097-547; PVID=1; bp_t_offset_499782751=928234396542042113; b_lsid=10DB7BAC2FA2"""
##############
最佳答案
2024-5-7 22:57:20
首先安装一个名为 netscape_cookies 的库:

代码:
  1. pip install netscape-cookies
复制代码

  1. from netscape_cookies import save_cookies_to_file       # 导出为文件
  2. from netscape_cookies import to_netscape_string         # 导出为字符串

  3. cookie2 = """buvid3=0442E694-B36B-DE00-98A1-83501638infoc; b_nut=1697693201; _uuid=9C9BBFA7-C248-C17DB4327D9DFC502792infoc; enable_web_push=DISABLE; header_theme_version=CLOSE; rpdid=|(k|~k~JuJRl0J'u~|u)Yu~lu; DedeUserID=499782751; DedeUserID__ckMd5=82111cfe2913801d; fingerprint=8e100a0b1d7cb081442112b1b32f5b11; buvid_fp_plain=undefined; buvid4=6DAC1448-68C5-78DA-C071-CCD51EF23-B2Y1vFpwbkjPs6%2BAXpRrZg%3D%3D; buvid_fp=8e100a0b1d7cb081442112b1b32f5b11; hit-dyn-v2=1; home_feed_column=4; FEED_LIVE_VERSION=V8; CURRENT_QUALITY=80; share_source_origin=weixin; bp_video_offset_499782751=925347289460899861; LIVE_BUVID=AUTO6317147048727573; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpzMsImlhdCI6MTcxNDcwNDgxMywicGx0IjotMX0.Ax7zsAzqN5zSiH6x7koyvVZtnpTyOvUrz5QSX9frObY; bili_ticket_expires=1714964013; bsource=search_baidu; CURRENT_FNVAL=4048; SESSDATA=fcc1137a%2C1730445864%2C7e434%2A52CjACfH7leT2Ndbjnv01p_7P-3U7ekQh4ASVkhYR2lST0JhMkdYUlR6MVBOVTZvNVNtTDY1WTJ2ZERyOXRGVFhEUWdyclBCdmp4MXpfZ2ZMbXEwXzV2M1d0c1dEN0tzdDBxNWFEVndmcVZ3TlVsUnRnIIEC; bili_jct=efc31b7e92996f4454ef5c19a403430b; sid=8kwsf7qc; browser_resolution=1097-547; PVID=1; bp_t_offset_499782751=928234396542042113; b_lsid=10DB7BAC2FA2"""

  4. cookie_data = list(map(lambda x: {"name": x[0], "value": x[1]}, map(lambda x: x.split('='), cookie2.split('; '))))

  5. save_cookies_to_file(cookie_data, 'cookie-net.txt')
  6. print(to_netscape_string(cookie_data))
复制代码

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-5-6 23:39:35 | 显示全部楼层
要将cookie从x1.com的格式转换为netscape format,你可以使用Python的re模块来提取cookie的键值对,并将其格式化成netscape format。

以下是一个示例代码实现:

  1. import re

  2. def convert_cookie(cookie):
  3.     cookie_dict = {}
  4.     cookie_list = cookie.split('; ')
  5.     for item in cookie_list:
  6.         key, value = item.split('=')
  7.         cookie_dict[key] = value

  8.     netscape_cookie = ''
  9.     for key, value in cookie_dict.items():
  10.         netscape_cookie += f"{key}\t{value}\t/\t\t2147483647\n"

  11.     return netscape_cookie

  12. cookie2 = """buvid3=0442E694-B36B-DE00-98A1-83501638infoc; b_nut=1697693201; _uuid=9C9BBFA7-C248-C17DB4327D9DFC502792infoc; enable_web_push=DISABLE; header_theme_version=CLOSE; rpdid=|(k|~k~JuJRl0J'u~|u)Yu~lu; DedeUserID=499782751; DedeUserID__ckMd5=82111cfe2913801d; fingerprint=8e100a0b1d7cb081442112b1b32f5b11; buvid_fp_plain=undefined; buvid4=6DAC1448-68C5-78DA-C071-CCD51EF23-B2Y1vFpwbkjPs6%2BAXpRrZg%3D%3D; buvid_fp=8e100a0b1d7cb081442112b1b32f5b11; hit-dyn-v2=1; home_feed_column=4; FEED_LIVE_VERSION=V8; CURRENT_QUALITY=80; share_source_origin=weixin; bp_video_offset_499782751=925347289460899861; LIVE_BUVID=AUTO6317147048727573; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpzMsImlhdCI6MTcxNDcwNDgxMywicGx0IjotMX0.Ax7zsAzqN5zSiH6x7koyvVZtnpTyOvUrz5QSX9frObY; bili_ticket_expires=1714964013; bsource=search_baidu; CURRENT_FNVAL=4048; SESSDATA=fcc1137a%2C1730445864%2C7e434%2A52CjACfH7leT2Ndbjnv01p_7P-3U7ekQh4ASVkhYR2lST0JhMkdYUlR6MVBOVTZvNVNtTDY1WTJ2ZERyOXRGVFhEUWdyclBCdmp4MXpfZ2ZMbXEwXzV2M1d0c1dEN0tzdDBxNWFEVndmcVZ3TlVsUnRnIIEC; bili_jct=efc31b7e92996f4454ef5c19a403430b; sid=8kwsf7qc; browser_resolution=1097-547; PVID=1; bp_t_offset_499782751=928234396542042113; b_lsid=10DB7BAC2FA2"""

  13. netscape_format_cookie = convert_cookie(cookie2)
  14. print(netscape_format_cookie)
复制代码


运行该代码,会输出转换后的netscape format的cookie:

  1. buvid3        0442E694-B36B-DE00-98A1-83501638infoc        /                2147483647
  2. b_nut        1697693201        /                2147483647
  3. _uuid        9C9BBFA7-C248-C17DB4327D9DFC502792infoc        /                2147483647
  4. enable_web_push        DISABLE        /                2147483647
  5. header_theme_version        CLOSE        /                2147483647
  6. rpdid        |(k|~k~JuJRl0J'u~|u)Yu~lu        /                2147483647
  7. DedeUserID        499782751        /                2147483647
  8. DedeUserID__ckMd5        82111cfe2913801d        /                2147483647
  9. fingerprint        8e100a0b1d7cb081442112b1b32f5b11        /                2147483647
  10. buvid_fp_plain        undefined        /                2147483647
  11. buvid4        6DAC1448-68C5-78DA-C071-CCD51EF23-B2Y1vFpwbkjPs6%2BAXpRrZg%3D%3D        /                2147483647
  12. buvid_fp        8e100a0b1d7cb081442112b1b32f5b11        /                2147483647
  13. hit-dyn-v2        1        /                2147483647
  14. home_feed_column        4        /                2147483647
  15. FEED_LIVE_VERSION        V8        /                2147483647
  16. CURRENT_QUALITY        80        /                2147483647
  17. share_source_origin        weixin        /                2147483647
  18. bp_video_offset_499782751        925347289460899861        /                2147483647
  19. LIVE_BUVID        AUTO6317147048727573        /                2147483647
  20. bili_ticket        eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpzMsImlhdCI6MTcxNDcwNDgxMywicGx0IjotMX0.Ax7zsAzqN5zSiH6x7koyvVZtnpTyOvUrz5QSX9frObY        /                2147483647
  21. bili_ticket_expires        1714964013        /                2147483647
  22. bsource        search_baidu        /                2147483647
  23. CURRENT_FNVAL        4048        /                2147483647
  24. SESSDATA        fcc1137a%2C1730445864%2C7e434%2A52CjACfH7leT2Ndbjnv01p_7P-3U7ekQh4ASVkhYR2lST0JhMkdYUlR6MVBOVTZvNVNtTDY1WTJ2ZERyOXRGVFhEUWdyclBCdmp4MXpfZ2ZMbXEwXzV2M1d0c1dEN0tzdDBxNWFEVndmcVZ3TlVsUnRnIIEC        /                2147483647
  25. bili_jct        efc31b7e92996f4454ef5c19a403430b        /                2147483647
  26. sid        8kwsf7qc        /                2147483647
  27. browser_resolution        1097-547        /                2147483647
  28. PVID        1        /                2147483647
  29. bp_t_offset_499782751        928234396542042113        /                2147483647
  30. b_lsid        10DB7BAC2FA2        /                2147483647
复制代码


注意:转换后的cookie的有效期默认设置为2147483647秒(约70年)。您可以根据需要进行调整。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-6 23:50:15 | 显示全部楼层
http.cookiejar.LoadError: 'cookie-net.txt' does not look like a Netscape format cookies file
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-6 23:50:33 | 显示全部楼层
blackantt 发表于 2024-05-06 23:50
http.cookiejar.LoadError: 'cookie-net.txt' does no ...


出现这个错误是因为Python的http.cookiejar库无法正确识别你提供的文件cookie-net.txt为Netscape格式的cookie文件。

可能的原因有两个:

1. 文件内容不符合Netscape格式。请确保文件中每一行都符合Netscape格式,每个字段使用制表符(\t)分隔,并且最后一个字段为数字表示cookie的过期时间。

2. 文件编码问题。请确保文件的编码与你的Python脚本编码一致。可以尝试修改文件的编码或将文件重新保存为UTF-8编码。

如果你确定文件内容符合Netscape格式,那么可以尝试使用其他方法将cookie转换为Netscape格式,而不是直接加载文件。

以下是一个示例代码,可以将字典形式的cookie转换为Netscape格式的字符串:

  1. def convert_to_netscape(cookie_dict):
  2.     netscape_cookie = ''
  3.     for key, value in cookie_dict.items():
  4.         netscape_cookie += f"{key}\t{value}\n"
  5.     return netscape_cookie

  6. # 示例cookie字典
  7. cookie_dict = {
  8.     'buvid3': '0442E694-B36B-DE00-98A1-83501638infoc',
  9.     'b_nut': '1697693201',
  10.     'DedeUserID': '499782751'
  11. }

  12. netscape_format_cookie = convert_to_netscape(cookie_dict)
  13. print(netscape_format_cookie)
复制代码


运行该代码,会输出转换后的Netscape格式的cookie字符串:

  1. buvid3        0442E694-B36B-DE00-98A1-83501638infoc
  2. b_nut        1697693201
  3. DedeUserID        499782751
复制代码


你可以将转换后的字符串保存到文件中,然后尝试使用http.cookiejar库加载。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-6 23:54:28 | 显示全部楼层
FishC 发表于 2024-5-6 23:39
要将cookie从x1.com的格式转换为netscape format,你可以使用Python的re模块来提取cookie的键值对,并将其 ...

# Netscape HTTP Cookie File
把上行加在第一行就行了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-6 23:54:39 | 显示全部楼层
blackantt 发表于 2024-05-06 23:54
# Netscape HTTP Cookie File
把上行加在第一行就行 ...


非常抱歉,我给出的答案不正确。对于Python的http.cookiejar模块,它无法直接识别普通文本中添加"# Netscape HTTP Cookie File"行后的Netscape格式cookie。

为了正确加载Netscape格式的cookie,你需要创建一个文本文件,并以Netscape格式的结构将cookie写入该文件中。以下是一个示例:

  1. import http.cookiejar

  2. # 创建CookieJar对象
  3. cookie_jar = http.cookiejar.CookieJar()

  4. # 创建MozillaCookieJar对象,用于保存和加载Netscape格式的cookie
  5. mozilla_cookiejar = http.cookiejar.MozillaCookieJar('cookies.txt')

  6. # 加载Netscape格式cookie文件
  7. mozilla_cookiejar.load('cookie-net.txt', ignore_expires=True, ignore_discard=True)

  8. # 将cookie放入CookieJar
  9. cookie_jar._cookies = mozilla_cookiejar._cookies

  10. # 打印cookie信息
  11. for cookie in cookie_jar:
  12.     print(cookie)
复制代码


在上述示例中,我们先创建了一个`CookieJar`对象来存储cookie,然后创建了一个`MozillaCookieJar`对象`mozilla_cookiejar`并指定文件名为`cookies.txt`,这个文件用来保存Netscape格式的cookie。接着,使用`load()`方法来加载Netscape格式的cookie文件,并将其中的cookie添加到`CookieJar`对象中。最后,我们通过遍历`CookieJar`对象来打印所有的cookie信息。

请注意,这里的`cookie-net.txt`应该是你提供的Netscape格式cookie文件的完整路径。你需要根据实际情况修改路径。另外,可能需要根据你的具体需求进行一些适当的调整,比如处理过期或丢弃的cookie等。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-7 22:57:20 | 显示全部楼层    本楼为最佳答案   
首先安装一个名为 netscape_cookies 的库:

代码:
  1. pip install netscape-cookies
复制代码

  1. from netscape_cookies import save_cookies_to_file       # 导出为文件
  2. from netscape_cookies import to_netscape_string         # 导出为字符串

  3. cookie2 = """buvid3=0442E694-B36B-DE00-98A1-83501638infoc; b_nut=1697693201; _uuid=9C9BBFA7-C248-C17DB4327D9DFC502792infoc; enable_web_push=DISABLE; header_theme_version=CLOSE; rpdid=|(k|~k~JuJRl0J'u~|u)Yu~lu; DedeUserID=499782751; DedeUserID__ckMd5=82111cfe2913801d; fingerprint=8e100a0b1d7cb081442112b1b32f5b11; buvid_fp_plain=undefined; buvid4=6DAC1448-68C5-78DA-C071-CCD51EF23-B2Y1vFpwbkjPs6%2BAXpRrZg%3D%3D; buvid_fp=8e100a0b1d7cb081442112b1b32f5b11; hit-dyn-v2=1; home_feed_column=4; FEED_LIVE_VERSION=V8; CURRENT_QUALITY=80; share_source_origin=weixin; bp_video_offset_499782751=925347289460899861; LIVE_BUVID=AUTO6317147048727573; bili_ticket=eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpzMsImlhdCI6MTcxNDcwNDgxMywicGx0IjotMX0.Ax7zsAzqN5zSiH6x7koyvVZtnpTyOvUrz5QSX9frObY; bili_ticket_expires=1714964013; bsource=search_baidu; CURRENT_FNVAL=4048; SESSDATA=fcc1137a%2C1730445864%2C7e434%2A52CjACfH7leT2Ndbjnv01p_7P-3U7ekQh4ASVkhYR2lST0JhMkdYUlR6MVBOVTZvNVNtTDY1WTJ2ZERyOXRGVFhEUWdyclBCdmp4MXpfZ2ZMbXEwXzV2M1d0c1dEN0tzdDBxNWFEVndmcVZ3TlVsUnRnIIEC; bili_jct=efc31b7e92996f4454ef5c19a403430b; sid=8kwsf7qc; browser_resolution=1097-547; PVID=1; bp_t_offset_499782751=928234396542042113; b_lsid=10DB7BAC2FA2"""

  4. cookie_data = list(map(lambda x: {"name": x[0], "value": x[1]}, map(lambda x: x.split('='), cookie2.split('; '))))

  5. save_cookies_to_file(cookie_data, 'cookie-net.txt')
  6. print(to_netscape_string(cookie_data))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-5-7 23:02:53 | 显示全部楼层
isdkz 发表于 2024-5-7 22:57
首先安装一个名为 netscape_cookies 的库:

代码:

netscape format 好像需要比较特别的格式

第一行必须是  # Netscape HTTP Cookie File
以后每行必须以    .域名  开头

否则我这边会出错。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-7 23:04:44 | 显示全部楼层
blackantt 发表于 2024-5-7 23:02
netscape format 好像需要比较特别的格式

第一行必须是  # Netscape HTTP Cookie File

你是在 requests 库中使用的 ?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-5-7 23:08:17 | 显示全部楼层
blackantt 发表于 2024-5-7 23:02
netscape format 好像需要比较特别的格式

第一行必须是  # Netscape HTTP Cookie File

域名和第一行可以这样加上去:

>>> cookie_data = list(map(lambda x: {"name": x[0], "value": x[1], "domain": "fishc.com.cn"}, map(lambda x: x.split('='), cookie2.split('; '))))
>>> print("# Netscape HTTP Cookie File\n" + to_netscape_string(cookie_data))
# Netscape HTTP Cookie File
fishc.com.cn    FALSE           FALSE   0       buvid3  0442E694-B36B-DE00-98A1-83501638infoc
fishc.com.cn    FALSE           FALSE   0       b_nut   1697693201
fishc.com.cn    FALSE           FALSE   0       _uuid   9C9BBFA7-C248-C17DB4327D9DFC502792infoc
fishc.com.cn    FALSE           FALSE   0       enable_web_push DISABLE
fishc.com.cn    FALSE           FALSE   0       header_theme_version    CLOSE
fishc.com.cn    FALSE           FALSE   0       rpdid   |(k|~k~JuJRl0J'u~|u)Yu~lu
fishc.com.cn    FALSE           FALSE   0       DedeUserID      499782751
fishc.com.cn    FALSE           FALSE   0       DedeUserID__ckMd5       82111cfe2913801d
fishc.com.cn    FALSE           FALSE   0       fingerprint     8e100a0b1d7cb081442112b1b32f5b11
fishc.com.cn    FALSE           FALSE   0       buvid_fp_plain  undefined
fishc.com.cn    FALSE           FALSE   0       buvid4  6DAC1448-68C5-78DA-C071-CCD51EF23-B2Y1vFpwbkjPs6%2BAXpRrZg%3D%3D
fishc.com.cn    FALSE           FALSE   0       buvid_fp        8e100a0b1d7cb081442112b1b32f5b11
fishc.com.cn    FALSE           FALSE   0       hit-dyn-v2      1
fishc.com.cn    FALSE           FALSE   0       home_feed_column        4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 14:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表