当前位置: 首页 > article >正文

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基础学习专栏


http://www.kler.cn/a/517735.html

相关文章:

  • 14-6-1C++STL的list
  • 【C】memory 详解
  • 【Leetcode刷题记录】15.三数之和
  • Liunx安装Docker容器化管理工具(记录篇)
  • 使用 Docker 运行 Oracle Database 23ai Free 容器镜像并配置密码与数据持久化
  • git Bash通过SSH key 登录github的详细步骤
  • Spring--SpringMVC的调用流程
  • 网关与云平台携手打造全轮转胶印机远程物联网监控系统
  • Spring Boot 后端跨域解决方案:解锁前后端通信的障碍
  • 使用python调用JIRA6 进行OAuth1认证获取AccessToken
  • 【u8g2模拟仿真】windows环境下使用sdl模拟仿真u8g2图形库
  • Ubuntu 顶部状态栏 配置,gnu扩展程序
  • FS飞速创新内推~
  • Windows中本地组策略编辑器gpedit.msc打不开/微软远程桌面无法复制粘贴
  • 【MySQL】我在广州学Mysql 系列——MySQL用户管理详解
  • SpringBoot Test详解
  • MySQL离线安装文档(Linux版)
  • 探索 SolidJS:一款高速的前端框架
  • 二叉树(了解)c++
  • Microsoft Edge 企业策略禁用更新
  • 【设计模式】访问者模式(Visitor Pattern): visitor.visit(), accept()
  • RocketMQ 系列文章
  • 【读书笔记·VLSI电路设计方法解密】问题43:什么是TestBench
  • python http调用视觉模型moondream
  • 配电自动化中的进线监控技术
  • 第十五届蓝桥杯大赛软件赛省赛Java 大学 B 组(1、2题)