CSDN 自动评论互动脚本

news2024/12/28 4:45:29

在这里插入图片描述
在这里插入图片描述

声明

该脚本的目的只是为了提升博客创作效率和博主互动效率,希望大家还是要尊重各位博主的劳动成果。

数据库设计

尽量我们要新建一个数据库csdn_article,再在其中建一个数据表article

-- csdn_article
 	-- article
 		-- 需要进行自动评论的表格信息...
CREATE TABLE `article` (
 
  `articleId` bigint NOT NULL COMMENT 'id',
 
  `articleDetailUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 'url',
 
  `articleTitle` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '标题',
 
  `nickName` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '昵称',
 
  `hotRankScore` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '热度',
 
  `comment` int NOT NULL DEFAULT '0' COMMENT '是否评论(0,否,1是)',
 
  `like` int NOT NULL DEFAULT '0' COMMENT '是否点赞(0,否,1是)',
 
  `insert_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 
  PRIMARY KEY (`articleId`) USING BTREE
 
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

代码

import random, time, os, threading
import requests
import pymysql
from dbutils.pooled_db import PooledDB
from schedule import every, repeat, run_pending
import json

POOL = PooledDB(
    creator=pymysql,  # 使用链接数据库的模块
    maxconnections=20,  # 连接池允许的最大连接数,0和None表示不限制连接数
    mincached=6,  # 初始化时,链接池中至少创建的空闲的链接,0表示不创建
    maxcached=None,  # 链接池中最多闲置的链接,0和None不限制
    maxshared=5,
    blocking=True,  # 连接池中如果没有可用连接后,是否阻塞等待。True,等待;False,不等待然后报错
    maxusage=None,  # 一个链接最多被重复使用的次数,None表示无限制
    setsession=[],  # 开始会话前执行的命令列表。如:["set datestyle to ...", "set time zone ..."]
    ping=0,  # ping MySQL服务端,检查是否服务可用。
    host='127.0.0.1', port=3306, user='xxx', password='xxx', database='csdn_article', charset='utf8')


def insert_article(articleId, articleDetailUrl, articleTitle, nickName, hotRankScore):
    print("===【插入文章】运行开始 ===\n")
    db = POOL.connection()
    conn = db.cursor()  # 使用cursor()方法获取操作游标
    sql = "INSERT INTO `article` (`articleId`, `articleDetailUrl`, `articleTitle`, `nickName`, `hotRankScore`) VALUES (%s, %s, %s, %s, %s);"
    data = (articleId, articleDetailUrl, articleTitle, nickName, hotRankScore)
    conn.execute(sql, data)    # 使用execute方法执行SQL语句
    data = db.commit()  # 使用 fetchone() 方法获取一条数据
    db.close()
    print("===【插入文章】运行结束 ===\n")
    return data


def select_is_insert(articleId):
    print("===【检查文章是否已插入】运行结束 ===\n")
    db = POOL.connection()
    conn = db.cursor()  # 使用cursor()方法获取操作游标
    conn.execute("SELECT COUNT(*) FROM `article` WHERE `articleId` = %s;" % articleId)  # 使用execute方法执行SQL语句
    data = conn.fetchall()  # 使用 fetchone() 方法获取一条数据
    db.close()
    print("===【检查文章是否已插入】运行结束 ===\n")
    return data[0][0]


def select_is_comment():  # 查询没有评论的数据
    print("===【查询未评论文章】运行开始 ===\n")
    db = POOL.connection()
    conn = db.cursor()  # 使用cursor()方法获取操作游标
    conn.execute(
        # "SELECT `articleId`,`articleDetailUrl` FROM `article` WHERE `comment` = '0' LIMIT 0, 2;")  # 使用execute方法执行SQL语句
        "SELECT `articleId`,`articleDetailUrl` FROM `article` WHERE `comment` = '0' LIMIT 0, 10;")
    data = conn.fetchall()  # 使用 fetchone() 方法获取一条数据
    db.close()
    print("===【查询未评论文章】运行结束 ===\n")
    return data


def update_article(articleId, comment=1):
    print("===【更新文章评论状态(未评论->已评论)】运行开始 ===\n")
    db = POOL.connection()
    conn = db.cursor()  # 使用cursor()方法获取操作游标
    conn.execute(
        "UPDATE `article` SET  `comment` =%s WHERE `articleId` = %s;" % (comment, articleId))  # 使用execute方法执行SQL语句
    data = db.commit()  # 使用 fetchone() 方法获取一条数据
    db.close()
    print("===【更新文章评论状态(未评论->已评论)】运行结束 ===\n")
    return data


def comment(articleId):
    """评论"""
    print("===【评论功能】运行开始 ===\n")
    # time.sleep(5)
    # user_headers = {
   
    #     'Host': 'blog.csdn.net',
    #     'Connection': 'keep-alive',
    #     'Content-Length': '75',
    #     'sec-ch-ua

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python低阶基础100题(上册)

** python低阶基础100题(上册) ** 1. 请打印出字符串 Hello World print("Hello World")2. 请打印出字符串 爸爸妈妈,你们辛苦啦 print("爸爸妈妈,你们辛苦啦")3. 请打印出字符串 人生苦短,我…

微信小程序uniapp+django洗脚按摩足浴城消费系统springboot

原生wxml开发对Node、预编译器、webpack支持不好,影响开发效率和工程构建。所以都会用uniapp框架开发 前后端分离,后端给接口和API文档,注重前端,接近原生系统 使用Navicat或者其它工具,在mysql中创建对应名称的数据库&#xff0…

安卓玩机搞机技巧综合资源----自己手机制作证件照的几种方法 免费制作证件照

接上篇 安卓玩机搞机技巧综合资源------如何提取手机分区 小米机型代码分享等等 【一】 安卓玩机搞机技巧综合资源------开机英文提示解决dm-verity corruption your device is corrupt. 设备内部报错 AB分区等等【二】 安卓玩机搞机技巧综合资源------EROFS分区格式 小米红…

Hive运行错误

Hive 文章目录 Hive错误日志错误SessionHiveMetaStoreClientql.Driver: FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTaskerror: Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster Please check …

什么是创造力?如何判断自己的创造力?

创造力,主要表现为创新思想、发现和创造新事物的能力,是知识,智力和能力的综合能力,尤其是在职业发展方面,创造力具有重要的意义,企业的核心竞争力就来源于创造力,这就需要具有创造力的员工来推…

阿尔杰姆·卢金采访

近年来,在中俄两国元首亲自擘画、战略引领下,两国新时代全面战略协作伙伴关系成熟坚韧、稳如泰山,树立了新型大国关系的新范式。中俄关系走出了一条大国战略互信、邻里友好的相处之道,给两国人民带来了实实在在的好处,…

使用Python将Word文档中的图片提取并生成PowerPoint幻灯片

在这篇博客中,我们将学习如何使用Python将Word文档中的图片提取出来并生成一个PowerPoint幻灯片。我们将借助wxPython、python-docx和python-pptx这三个强大的库来实现这一目标。以下是实现这个功能的完整过程。 C:\pythoncode\new\wordTOppt.py 所需库 首先&…

8.继承和多态

继承 为什么需要继承 Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是现实世界错综复杂,事物之间可能会存在一些关联 比如:狗和猫 它们都是一个动物 代码举例…

文件系统--软硬链接

文章目录 现象软链接硬链接 现象 建立软链接 建立硬链接 // 删除软硬链接都可以用 unlink 指令 unlink soft-link软链接 软链接是一个独立的文件,因为有独立的inode number 软链接的内容:目标文件所对应的路劲字符串如果我们直接查看软链接文件&#…

在matlab里面计算一组给定参数的方程的解

如: k (1:1024); f (x)(1-x-k.*x.^2); 在这段代码给出了一组函数,若需要计算f0,可以通过自带的函数实现: x0 zeros(length(k),1); options optimoptions(fsolve,Display,none,TolX,tol,TolFun,tol); tic for ik 1:length…

BERT ner 微调参数的选择

针对批大小和学习率的组合进行收敛速度测试,结论: 相同轮数的条件下,batchsize-32 相比 batchsize-256 的迭代步数越多,收敛更快批越大的话,学习率可以相对设得大一点 画图代码(deepseek生成)…

aws glue配置读取本地kafka数据源

创建连接时填写本地私有ip地址,选择网络配置 配置任务选择kafka作为数据源 但是执行任务时日志显示连接失败 文档提到只能用加密通信 如果您希望与 Kafka 数据源建立安全连接,请选择 Require SSL connection (需要 SSL 连接),并在 Kafka priv…

Nginx - 集成ModSecurity实现WAF功能

文章目录 Pre概述什么是ModSecurity?ModSecurity的工作原理主要功能和特点使用场景与其他安全解决方案的比较 ModSecurity在Nginx中的应用安装ModSecurity配置ModSecurity Pre Nginx - 集成Waf 功能 概述 ModSecurity是一款开源的Web应用防火墙(WAF&a…

Java反射角度理解spring

概述 Java反射(Reflection)是Java编程语言的一个特性,它允许在运行时对类、接口、字段和方法进行动态查询和操作。反射提供了一种在运行时查看和修改程序行为的能力,这通常用于实现一些高级功能,如框架(Spring)、ORM&…

考研计组chap1计算机系统概述

目录 一、计算机发展历程(不考了) 二、计算机硬件的基本组成 3 1.五个部分 (1)输入设备 (2)控制器 (3)运算器 (4)(主)存储器 (5&#xff0…

探索Python技巧:零基础学习缩进与逻辑关系

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、理解Python的缩进语法 缩进规则详解 二、缩进在逻辑关系中的应用 逻辑块示例 三、实…

Leecode热题100---55:跳跃游戏(贪心算法)

题目: 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。 贪心算…

从机械尘埃到智能星河:探索从工业心脏到AI大脑的世纪跨越(一点个人感想)...

全文预计1400字左右,预计阅读需要8分钟。 近期,人工智能领域呈现出前所未有的活跃景象,各类创新成果如雨后春笋般涌现,不仅推动了科技的边界,也为全球经济注入了新的活力。 这不,最近报道16家国内外企业在A…

操作系统实验四:多线程与信号量编程

操作系统实验上机 更多技术请访问:www.xuanworld.top 部分审核不通过的文章将发至个人博客:www.xuanworld.top 欢迎来52破解论坛阅读帖子:https://www.52pojie.cn/thread-1891208-1-1.html 实验名称实验序号实验日期实验人多线程与信号量…

2024年电工杯数学建模竞赛A题完整解析 | 代码 论文分享

A 题 问题一1.1问题分析1.2第一问1.2.1指标定义1.2.2结果计算1.2.3关键因素分析 1.3第二问1.3.1模型建立1.3.2算法求解1.3.3求解结果 1.4第三问1.4.1模型建立1.4.2计算结果 第二题2.1 问题分析2.2第一问2.2.1指标计算 数据与代码代码分享完整资料 A题的问题一和问题二终于完成啦…