用Py写的hybbs发帖机器人

哄着自己玩   ·   发表于 4个月前   ·   插件开发

可以自动发帖和手动发帖,需要 Python3 ,当然如果网站有验证码就不行了,代码仅供学习,请勿恶搞

使用方法,在终端输入

python3 post.py

post.py 文件

#!/usr/bin/python3
#coding:UTF-8
import requests
import json
from lxml import etree
class Index:
    username = 'admin'              # 网站用户名
    userpass = '123456'             # 网站用户名密码
    loginurl = 'http://hy.cn/user/login.html' #登录地址
    posturl  = 'http://hy.cn/post.html' #发帖地址
    poston   = True                 # 自动发帖 True 开启 Fasle 关闭自动发帖
    postmax  = 10                   # 自动发帖最大次数(需要开启自动发帖)
    session  = requests.Session()   # 会话
    is_login = False                # 登录状态
    # 登录操作
    def login(self):
        if self.is_login == False:
            # 进行用户登录
            r = self.session.post(self.loginurl,data={
                    'user' : self.username,
                    'pass' : self.userpass
                }).text
            htmlel = etree.HTML(r)
            res = htmlel.xpath('//title/text()')[0]
            if res.count('登录成功'):
                self.is_login = True
            else:
                print('登录失败,Error:%s' % res[0:5])
    # 发帖操作
    def post(self):
        # 登录用户
        self.login()
        # 登录后开始发帖
        if self.is_login:
            if self.poston:
                title   = '随机标题.'
                content = '随机内容'
                forum   = 2 #分类id
            else:
                title   = input('请输入帖子标题:')
                content = input('请输入帖子内容:')
                forum   = input('请输入分类 ID:')
            print('开始提交...')
            r = self.session.post(self.posturl,data={
                    'title'     : title,
                    'content'   : content,
                    'forum'     : forum,
                    'fileid'    : '',
                    'filegold'  : '',
                    'filemess'  : '',
                    'filehide'  : '',
                    'thide'     : 0,
                    'tgold'     : '',
                }).text
            res = json.loads(r)
            if res['error']:
                print('发帖成功 ID:%s' % res['id'])
            else:
                print('发帖失败:'+res['info'])
    # 入口
    def index(self):
        # 发帖
        print('正在执行%s发帖...' % '自动' if self.poston else '手动')
        if self.poston:
            sum = 0
            while sum < self.postmax:
                sum += 1
                self.post()
        else:
            self.post()
# 实例化Index类
x=Index()
# 访问index方法
x.index()

0 Reply   |  Until 4个月前 | 476 View
LoginCan Publish Content