GithubHelp home page GithubHelp logo

zybqw / aumiao Goto Github PK

View Code? Open in Web Editor NEW
5.0 2.0 1.0 1.6 MB

你说的对,但是《Aumiao》(あ喵)是一款由**学牲猫鱼a和BKS Studio开发的编程猫社区自动化工具,于2023年5月2日发布。游戏以编程猫宇宙为舞台,玩家可以扮演毛毡用户在这个答辩社区冒险探索,并邂逅各种不同的乐子人😋。与他们一起打败强敌扫厕所😡,在维护编程猫社区核瓶铀删的局面时,并逐步揭开编程猫社区的真相

Home Page: https://zybqw.github.io/article/CodeMao-AutoCommenter/

License: GNU General Public License v3.0

Python 100.00%

aumiao's Introduction

title tags categories index_img date comments hide
CodeMao-AutoCommenter使用文档
Auto
CodeMao
Python
/img/article/article_CodeMao_AutoCommer.jpg
2023-11-06 04:00:00 -0800
true
false

{% note info %} 本文档更新于: 2024-01-25 凌晨 适用于Automatic-comments-v1.10版本 本项目仅用于技术学习交流 {% endnote %}

signs

目录

项目简介

猫毡(雾)最强爬虫)

这个 Python 项目可以自动在编程猫网站上对作品进行点赞,评论以及回复,实现自动化模拟用户行为,以提高作品曝光率。✨

作品说明

原作:

by 伴雪纷飞

现作者账号转移至 伴只狗头

参考:

感谢《A Byte of Python》(《简明Python教程》)Swaroop C H撰 漠伦译

为了讲解方便,文档中的{MAIN_FILEPATH}为您的爬虫所在目录,{FILEPATH}为结果记录文件所在目录

功能列表

  • 模拟登录
    • 支持账号密码登录 🔐
    • 支持直接 Cookie 登录 🍪
  • 获取最新作品
    • 从网站接口获取最新上传作品列表 🆕
  • 获取最新回复
    • 获取新的评论与回复以及点赞信息😉
  • 自动点赞
    • 调用接口对作品点赞 👍
    • 统计点赞次数 🔢
  • 自动评论
    • 随机获取评论内容 💬
    • 随机选择表情 😃
    • 统计评论次数 📊
  • 自动回复
    • 多种回复模式📃
  • 数据过滤
    • 跳过已评论过的作品 ❌
    • 跳过点赞数过多的作品 🙅‍♂️
  • 结果记录
    • 记录已评论过的作品,避免重复 🙅‍
    • 支持自定义保存位置和文件名
  • 随机间隔
    • 每次操作后随机等待一定时间间隔 ⏳
  • 配置文件
    • 支持修改评论回复内容✍
  • 侦测评论
    • 侦测作品前300个评论,避免因为配置文件丢失而重复评论🎫
  • 速度至上
    • 1.10版本全面重写🔍
    • 优秀的代码逻辑💎
  • 生成文件内容优化🚀

使用教程

  • 如果您使用的是以.exe结尾的可执行文件版本,可省略配置python,安装所需库以及运行文件这几步

配置Python

访问如下网址https://www.python.org/downloads/

选择合适的python版本(3.9及以上,建议为最新)

安装所需库

  • requests
  • beautifulsoup4

可以使用 pip 直接安装:

pip install requests
~~pip install beautifulsoup4~~

如果安装速度慢,可以先配置pip国内镜像源加速安装:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple # 永久设置
pip install example -i https://pypi.tuna.tsinghua.edu.cn/simple # 暂时设置 

配置完成后,再使用pip安装库。

还有其他国内源,可以将https://pypi.tuna.tsinghua.edu.cn/simple替换

运行文件

使用Python自带的idle或其他IDE打开

按照指引运行

  • tips: cookies具有时效性,配置文件并未保存,因此每次需要重新输入新的cookies

cookies获取教程(以edge浏览器为例)

  • 访问如下网址https://shequ.codemao.cn/

  • 输入账号密码,确保您已经登录

  • 按下F12键,(笔记本电脑为Fn+F12),打开浏览器开发者工具

  • 转到网络一栏,点击记录网络日志按钮

  • 刷新网页,在网络日志中找到details打开

  • 在标头中的请求表头中找到Cookie一项,右键复制,粘贴到爬虫中

文件结构

如果您已经运行过了一遍爬虫,爬虫将会生成三个文件:

- Automatic-comments-v1.x.x.py    主程序文件 💻       位于{MAIN_FILEPATH}
- config.json  					  信息配置文件 📄     位于{MAIN_FILEPATH}
- example.txt     				  结果记录文件 📄     位于{FILEPATH}

自定义配置

请打开{MAIN_FILEPATH}中的config.json

如若您看到是的仅一行代码,请访问https://www.bejson.com/explore/index_new/或其他json格式化网站,将文件内容全部复制并格式化后覆盖掉原文本

现在,您看到的在该文件中,有两个大的字典:

  • Account
  • Data

Account存储的是您的账号信息,不可轻易更改

Data存储的是爬虫的输出数据:

  • proxies_list存储了代理服务器地址,该功能还未正式投入使用
  • UNDO_LIST存储了跳过的训练师编号,如若您想让爬虫跳过评论某人的作品,可以在此更改
  • comments存储了发送的评论列表,爬虫会随机选取一个进行发送,您可以在此更改评论内容
  • emojis存储了发送的表情列表,不可轻易更改
  • answers存储了发送的回复列表,爬虫会随机选取一个进行发送,您可以在此更改回复内容

编译

如若您想让爬虫文件经过编译成为可执行文件

可使用如下库

  • Nuitka
  • Pyinstaller

现仅对Nuitka进行教学(Windows系统)

pip install nuitka

在{MAIN_FILEPATH}目录,Shift+右键,在菜单中选择命令窗口并打开

也可以这样: win徽标键+r打开运行,输入cmd,在cmd中输入{MAIN_FILEPATH}目录所在盘符+半角冒号(例如E:),之后输入

cd {MAIN_FILEPATH}

在cmd中输入

nuitka --standalone --plugin-enable=upx --show-progress --remove-output --windows-icon-from-ico=my.ico --output-dir=out Automatic-comments-v1.10.0.py

等待运行完成,即可在{MAIN_FILEPATH}下的out目录使用可执行文件版

功能详解

初始化账户信息

Account = {
    "phonenum": " ", "password": " ", "filepath": " ",
    "userid": " ", "nickname": " ",
}
CONFIG_FILE_PATH = path.join(getcwd(), "config.json")
HEADERS = {...}

🔑 初始化账户信息,包括电话号码、密码、文件路径、用户ID和昵称。还定义了配置文件的路径和HTTP请求头。

预设数据类 Pre_Data

class Pre_Data:
    def __init__(self):
        self.proxies_list = [{"http": "http://114.114.114.114:2333"}]
        self.contents = ["666#°Д°", "加油!:O", ...]
        self.emojis = ["编程猫_666", "编程猫_棒", ...]
        self.answers = ["这是{}的自动回复...", "{}的自动回复来喽", ...]

📌 存储了预设的代理列表、评论内容、表情和自动回复模板。这些数据用于构建社区互动。

实际使用的数据类 Data

class Data:
    def __init__(self):
        self.proxies_list = ([" "],)
        self.UNDO_LIST = [""]
        self.contents = ([" "],)
        self.emojis = ([" "],)
        self.answers = [" "]

📊 此类用于实际运行时存储和更新数据,如代理列表、评论内容等。

发送请求的函数 send_request

def send_request(url, method, data=None, headers=HEADERS, direct=None):
    ...

🌐 此函数负责向指定的URL发送GET或POST请求。它还处理代理选择和异常情况。

检查配置文件是否存在的函数 has_config_file

def has_config_file():
    ...

📁 检查配置文件是否存在,以确定是否需要加载或创建新的配置。

保存和加载账户信息的函数

def save_account(path):
    ...
def load_account():
    ...

💾 这两个函数用于在配置文件中保存和加载账户信息及预设数据。

为账户信息提供交互式输入的函数 input_account

def input_account():
    ...

👤 提供交互式界面以输入账户信息,如电话号码和密码。

登录函数 login

def login():
    ...

🔐 处理用户登录逻辑,包括从网页解析所需的PID、发送登录请求、处理登录响应和更新账户信息。

检查评论的函数 checkcomments

def checkcomments(work_id, special_id):
    ...

🔍 此函数用于检查特定作品的评论是否已存在。它通过发送请求到编程猫社区API,获取特定作品的评论数据,并遍历这些评论以检查是否包含特定用户ID的评论。

将文本写入指定文件的函数 write

def write(text, name):
    ...

✍️ 用于将文本内容写入指定的文件。这主要用于记录已经进行过互动的作品ID,以避免重复互动。

排序文件中的数字的函数 sort_numbers_in_file

def sort_numbers_in_file(input_file_path):
    ...

🔢 用于对文件中的数字进行排序。这通常用于优化生成的文件内容,例如将作品ID按照数值顺序排列。

点赞函数 like_work

def like_work(cookie, work_id):
    ...

👍 对指定作品进行点赞。该函数发送POST请求到编程猫社区API,完成点赞操作,并处理响应以确认操作是否成功。

评论函数 comment_work

def comment_work(cookie, work_id):
    ...

💬 对指定作品进行评论。它随机选择预设的评论内容和表情,然后发送POST请求进行评论。

回复函数 reply_work

def reply_work():
    ...

🔄 处理接收到的回复消息。该函数首先检查是否有新的回复消息,然后根据消息类型(如评论回复或作品回复)发送适当的回复内容。

主函数 main

def main():
    ...

🚀 定义了脚本的主要运行逻辑。它包括登录逻辑、用户交互以选择操作模式(如仅点赞、仅评论等),并循环执行所选操作。

项目总结

这个项目主要运用了 requests、BeautifulSoup 等库模拟登录并解析页面,通过调用官方 API 实现自动化点赞和评论。✨

程序加入了一定的过滤机制,间隔设置以及代理来规避风控。🛡️

可以作为 Python 网络爬虫和接口调用的练手项目,与此同时需要注意合理使用,遵守网站规则。❗️

如果有任何问题欢迎反馈,本项目仅用于技术学习交流。💬

下载地址

联系我

如果您对此项目有任何问题或建议,欢迎随时联系我。😊

Star History

Star History Chart

感谢您的阅读!😉

aumiao's People

Contributors

zybqw avatar

Stargazers

满月叶 avatar Nomen avatar Yan Xueqian avatar 李奕宸 avatar  avatar

Watchers

Orangesoft avatar  avatar

Forkers

helloyork

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.