博客
关于我
python 原生cookie 转化为字典cookie
阅读量:282 次
发布时间:2019-03-01

本文共 1679 字,大约阅读时间需要 5 分钟。

在实际开发中,获取并处理浏览器中的cookie值是一个常见但复杂的任务。尤其是在不同浏览器之间切换时,cookie的格式和处理方式可能会有所不同。以下是关于如何在Python中处理cookie值并使用requests库进行爬虫的详细方法。

一、获取浏览器中的cookie值

在现代浏览器中,cookie值通常以键值对的形式存储,形式类似于cookie_name=cookie_value。通过右键点击浏览器中的cookie选项,可以直接复制这些值并粘贴到代码中。

然而,除了直接复制外,某些浏览器(如火狐)导出的cookie值可能包含编码后的特殊字符,这些字符需要经过处理才能正确使用。因此,使用Python脚本来自动解析cookie值是一个更可靠的方法。

二、Python脚本处理cookie值

以下是一个示例Python脚本,用于解析并存储cookie值:

cookie = 'cna=xaYUEGbE2X0CAd7f2Qhq4DAA; thw=cn;nk=%5Cu65E0%5Cu58F0%5Cu6EF4%5Cu5BF9%5Cu767D; l_g=Ug%3D%3D; cookie17=UonZBGCaYSPQhQ%3D%3D; l=AiIimIoKS0HVED4ao4GprqAT8qKEcyaN; isg=AkxMGzVSdzRypWPIho7m3FdsHapqgvAvBpI7WaYNWPeaMew7zpXAv0KDp47z'cookieDict = {}cookies = cookie.split("; ")for co in cookies:    co = co.strip()    if '=' in co:        key, value = co.split('=', 1)        value = value.replace('"', '')        cookieDict[key] = value

三、使用requests库进行爬虫

在获取了cookie值后,可以将它们添加到requests库的请求头中,从而模拟浏览器的行为进行爬虫。以下是一个示例:

import requestscookieDict = {    'cna': 'xaYUEGbE2X0CAd7f2Qhq4DAA',    'thw': 'cn',    'nk': '%u65E0%u58F0%u6EF4%u5BF9%u767D',    'l_g': 'Ug%3D%3D',    'cookie17': 'UonZBGCaYSPQhQ%3D%3D',    'l': 'AiIimIoKS0HVED4ao4GprqAT8qKEcyaN',    'isg': 'AkxMGzVSdzRypWPIho7m3FdsHapqgvAvBpI7WaYNWPeaMew7zpXAv0KDp47z'}url = 'http://www.tianya.cn/'response = requests.get(    url,    cookies=cookieDict)response.raise_for_status()

四、注意事项

  • cookie的编码:确保cookie值已经正确解码。如果cookie值中包含URL编码的字符,需要在请求时使用原始字符。
  • Session对象:如果需要保持cookie不变,可以使用requests.Session()对象,并在每次请求时传递cookie参数。
  • 处理异常:在发送请求前,使用response.raise_for_status()方法检查响应状态码,避免由于网络问题或错误请求而导致程序崩溃。
  • 五、优化建议

  • 代码格式化:在实际使用前,建议对代码进行格式化处理,确保可读性。
  • 错误处理:添加异常捕获机制,确保程序在遇到无法解析的cookie值时能够平滑处理。
  • 版本控制:将cookie处理逻辑封装到函数中,方便维护和扩展。
  • 通过以上方法,可以有效地获取和使用浏览器中的cookie值,实现爬虫任务。

    转载地址:http://baio.baihongyu.com/

    你可能感兴趣的文章
    NLog 自定义字段 写入 oracle
    查看>>
    NLog类库使用探索——详解配置
    查看>>
    NLP 基于kashgari和BERT实现中文命名实体识别(NER)
    查看>>
    NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
    查看>>
    NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
    查看>>
    NLP学习笔记:使用 Python 进行NLTK
    查看>>
    NLP的神经网络训练的新模式
    查看>>
    NLP问答系统:使用 Deepset SQUAD 和 SQuAD v2 度量评估
    查看>>
    NLP:使用 SciKit Learn 的文本矢量化方法
    查看>>
    Nmap扫描教程之Nmap基础知识
    查看>>
    Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
    查看>>
    NMAP网络扫描工具的安装与使用
    查看>>
    NMF(非负矩阵分解)
    查看>>
    nmon_x86_64_centos7工具如何使用
    查看>>
    NN&DL4.1 Deep L-layer neural network简介
    查看>>
    NN&DL4.3 Getting your matrix dimensions right
    查看>>
    NN&DL4.8 What does this have to do with the brain?
    查看>>
    nnU-Net 终极指南
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    NO 157 去掉禅道访问地址中的zentao
    查看>>