Python爬虫之——Cookie存储器

目录

  • 专栏导读
  • 1、背景介绍
  • 2、库的安装
  • 3、核心代码
  • 4、完整代码
  • 总结

专栏导读

在这里插入图片描述

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

1、背景介绍

  • 有时候我们在爬虫的时候,经常使用到Cookie,于是为了方便复制粘贴,可以将这一部分单独分离出来,只用来粘贴Cookie,然后存入json中

在这里插入图片描述

在这里插入图片描述

  • 其他程序如果需要,就可以直接加载这个Cookie,然后直接使用,也可以直接上线上化,存入某个网络地址中,直接下载使用

2、库的安装

用途安装
PyQt5界面设计pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple/

3、核心代码

  • ①:保存Cookie等信息

def save_cookie(self):
    cookie_dict = {
        "accessToken": self.access_token_input.text(),
        "Cookie": self.cookie_input.text()
    }
    # 文件夹就创建
    if not os.path.exists("cookie_json"):
        os.makedirs("cookie_json")
    try:
        with open("cookie_json/cookie.json", "w", encoding="utf-8") as f:
            json.dump(cookie_dict, f, ensure_ascii=False, indent=4)
        QMessageBox.information(self, "成功", "保存成功!")
    except Exception as e:
        QMessageBox.critical(self, "错误", f"保存失败:{str(e)}")

4、完整代码

# -*- coding: UTF-8 -*-
'''
@Project :Cookie收集界面工具
@File    :_0_cookie_.py
@IDE     :PyCharm 
@Author  :一晌小贪欢(278865463@qq.com)
@Date    :2025/1/23 19:08 
'''
import os
import sys
import json
from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout,
                             QLabel, QLineEdit, QPushButton, QMessageBox)


class CookieToolWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 设置窗口标题和大小
        self.setWindowTitle('Cookie设置工具')
        self.setGeometry(300, 300, 500, 250)  # 调整窗口大小

        # 创建中心部件和布局
        central_widget = QWidget()
        self.setCentralWidget(central_widget)
        layout = QVBoxLayout(central_widget)
        layout.setSpacing(15)  # 增加控件之间的间距

        # 设置全局样式
        self.setStyleSheet("""
            QMainWindow {
                background-color: #f5f5f5;
            }
            QLabel {
                font-size: 14px;
                font-weight: bold;
                color: #333333;
            }
            QLineEdit {
                padding: 8px;
                font-size: 13px;
                border: 1px solid #cccccc;
                border-radius: 4px;
                background-color: white;
            }
            QPushButton {
                padding: 10px;
                font-size: 14px;
                font-weight: bold;
                color: white;
                background-color: #2196F3;
                border: none;
                border-radius: 4px;
                min-height: 40px;
            }
            QPushButton:hover {
                background-color: #1976D2;
            }
        """)

        # 创建accessToken输入框
        self.access_token_label = QLabel('Access Token:')
        self.access_token_input = QLineEdit()
        self.access_token_input.setPlaceholderText('请输入Access Token')
        layout.addWidget(self.access_token_label)
        layout.addWidget(self.access_token_input)

        # 创建Cookie输入框
        self.cookie_label = QLabel('Cookie:')
        self.cookie_input = QLineEdit()
        self.cookie_input.setPlaceholderText('请输入Cookie')
        layout.addWidget(self.cookie_label)
        layout.addWidget(self.cookie_input)

        # 创建保存按钮
        self.save_button = QPushButton('保存')
        self.save_button.clicked.connect(self.save_cookie)
        layout.addWidget(self.save_button)

        # 设置布局的边距
        layout.setContentsMargins(20, 20, 20, 20)

        # 加载现有的cookie数据
        self.load_existing_cookie()

    def load_existing_cookie(self):
        try:
            with open("cookie_json/cookie.json", "r", encoding="utf-8") as f:
                cookie_dict = json.load(f)
                self.access_token_input.setText(cookie_dict.get("accessToken", ""))
                self.cookie_input.setText(cookie_dict.get("Cookie", ""))
        except FileNotFoundError:
            pass

    def save_cookie(self):
        cookie_dict = {
            "accessToken": self.access_token_input.text(),
            "Cookie": self.cookie_input.text()
        }
        # 文件夹就创建
        if not os.path.exists("cookie_json"):
            os.makedirs("cookie_json")
        try:
            with open("cookie_json/cookie.json", "w", encoding="utf-8") as f:
                json.dump(cookie_dict, f, ensure_ascii=False, indent=4)
            QMessageBox.information(self, "成功", "保存成功!")
        except Exception as e:
            QMessageBox.critical(self, "错误", f"保存失败:{str(e)}")


def main():
    app = QApplication(sys.argv)
    window = CookieToolWindow()
    window.show()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main() 

总结

  • 希望对初学者有帮助

  • 致力于办公自动化的小小程序员一枚

  • 希望能得到大家的【一个免费关注】!感谢

  • 求个 🤞 关注 🤞

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 求个 ❤️ 喜欢 ❤️

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 求个 👍 收藏 👍

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/961481.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VMware 中Ubuntu无网络连接/无网络标识解决方法【已解决】

参考文档 Ubuntu无网络连接/无网络标识解决方法_ubuntu没网-CSDN博客 再我们正常使用VMware时,就以Ubuntu举例可能有时候出现无网络连接,甚至出现无网络标识的情况,那么废话不多说直接上教程 环境:无网络 解决方案&#…

CSS(快速入门)

欢迎大家来到我的博客~欢迎大家对我的博客提出指导,有错误的地方会改进的哦~点击这里了解更多内容 目录 一、什么是CSS?二、基本语法规范三、CSS选择器3.1 标签选择器3.2 id选择器3.3 class选择器3.4 通配符选择器3.5 复合选择器 四、常用CSS样式4.1 color4.2 font…

网络安全攻防实战:从基础防护到高级对抗

📝个人主页🌹:一ge科研小菜鸡-CSDN博客 🌹🌹期待您的关注 🌹🌹 引言 在信息化时代,网络安全已经成为企业、政府和个人必须重视的问题。从数据泄露到勒索软件攻击,每一次…

PETSc源码分析: Optimization Solvers

本文结合PETSc源代码,分析PETSc中的优化求解器。 注1:限于研究水平,分析难免不当,欢迎批评指正。 注2:文章内容会不定期更新。 参考文献 Balay S. PETSc/TAO Users Manual, Revision 3.22. Argonne National Labora…

单细胞-第四节 多样本数据分析,下游画图

文件在单细胞\5_GC_py\1_single_cell\2_plots.Rmd 1.细胞数量条形图 rm(list ls()) library(Seurat) load("seu.obj.Rdata")dat as.data.frame(table(Idents(seu.obj))) dat$label paste(dat$Var1,dat$Freq,sep ":") head(dat) library(ggplot2) lib…

基于Arcsoft的人脸识别

目录 一、前言 二、使用方法 三、获取SDK 四、人脸检测/人脸识别 五、代码实现 一、前言 face++,百度ai,虹软,face_recognition,其中除了face_recognition是python免费的一个库安装好响应的库直接运行就好,另外三个需要填入相关申请的信息id和key。 分别对应着相应的人…

计算机网络之链路层

本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》 02 数据链路层 在网上看到其他人做了详细的笔记,就不再多余写了,直接参考着学习吧。 1 详解数据链路层-数据链路层的功能【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51C…

Python数据分析-数据加载与存储(六)

title: ‘Python数据分析:数据加载与存储(六)’ tags: python数据分析 categories:python数据分析 keywords:python数据分析 cover: …/img/404_icecream_whale.png description: 本文讲述了使用pandas加载和存储数据的操作,和一些文件的格式…

计算机网络 IP 网络层 2 (重置版)

IP的简介: IP 地址是互联网协议地址(Internet Protocol Address)的简称,是分配给连接到互联网的设备的唯一标识符,用于在网络中定位和通信。 IP编制的历史阶段: 1,分类的IP地址: …

大数据相关职位介绍之二(数据治理,数据库管理员, 数据资产管理师,数据质量专员)

大数据相关职位介绍之二(数据治理,数据库管理员, 数据资产管理师,数据质量专员) 文章目录 大数据相关职位介绍之二(数据治理,数据库管理员, 数据资产管理师,数据质量专员…

编译dpdk19.08.2中example时一系列报错解决

dpdk19.08编译过程全解 dpdk 介绍问题描述编译过程执行Step 1报错一解决方式 报错二解决方式 继续执行Step 248的时候报错 49没有修改成功输入60退出 使用过程执行make报错一解决方式 继续make报错二解决方式 继续make执行生成文件helloworld报错三解决方式 执行make 完成参考链…

最优化问题 - 内点法

以下是一种循序推理的方式,来帮助你从基础概念出发,理解 内点法(Interior-Point Method, IPM) 是什么、为什么要用它,以及它是如何工作的。 1. 问题起点:带不等式约束的优化 假设你有一个带不等式约束的优…

Linux下Ubuntun系统报错find_package(BLAS REQUIRED)找不到

Linux下Ubuntun系统报错find_package(BLAS REQUIRED)找不到 这次在windows的WSL2中遇到了一个非常奇怪的错误,就是 CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):Could NOT find BLAS (missing: BLAS_LIBRAR…

Ubuntu Server 安装 XFCE4桌面

Ubuntu Server没有桌面环境,一些软件有桌面环境使用起来才更加方便,所以我尝试安装桌面环境。常用的桌面环境有:GNOME、KDE Plasma、XFCE4等。这里我选择安装XFCE4桌面环境,主要因为它是一个极轻量级的桌面环境,适合内…

芯片AI深度实战:实战篇之vim chat

利用vim-ollama这个vim插件,可以在vim内和本地大模型聊天。 系列文章: 芯片AI深度实战:基础篇之Ollama-CSDN博客 芯片AI深度实战:基础篇之langchain-CSDN博客 芯片AI深度实战:实战篇之vim chat-CSDN博客 芯片AI深度…

线程概念、操作

一、背景知识 1、地址空间进一步理解 在父子进程对同一变量进行修改时发生写时拷贝,这时候拷贝的基本单位是4KB,会将该变量所在的页框全拷贝一份,这是因为修改该变量很有可能会修改其周围的变量(局部性原理)&#xf…

设置jmeter外观颜色

设置jmeter外观颜色 方法: 步骤一、点击顶部选项 ->外观,这里提供了不同的主题,可选自己喜欢的风格。 步骤二、选择后,弹框提示点击Yes。

2021 年 6 月大学英语四级考试真题(第 1 套)——纯享题目版

🏠个人主页:fo安方的博客✨ 💂个人简历:大家好,我是fo安方,目前中南大学MBA在读,也考取过HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等证书。🐳 &…

[论文总结] 深度学习在农业领域应用论文笔记14

当下,深度学习在农业领域的研究热度持续攀升,相关论文发表量呈现出迅猛增长的态势。但繁荣背后,质量却不尽人意。相当一部分论文内容空洞无物,缺乏能够落地转化的实际价值,“凑数” 的痕迹十分明显。在农业信息化领域的…

LangGraph系列-1:用LangGraph构建简单聊天机器人

在快速发展的人工智能和大型语言模型(llm)世界中,开发人员不断寻求创建更灵活、更强大、更直观的人工智能代理的方法。 虽然LangChain已经改变了这个领域的游戏规则,允许创建复杂的链和代理,但对代理运行时的更复杂控制…