参考文章:https://blog.qwqdanchun.cn/archives/868
关键词:hostloc自动签到脚本 hostloc自动刷分脚本 Discuz自动签到脚本 Centos6安装python3.6.0 Centos6安装pip Centos6安装requests
hostloc是基于Discuz! X3.4驱动的论坛,论坛采用了严格的积分级别制度,就目前来说,hostloc已经取消了积分交易、积分转赠、禁止悬赏等,但是做为低等级的用户,要通过发帖和回复才能获取积分,有时候自己并不会时常关注浏览论坛的时候可不可以也增长积分呢?答案是可以的,可以通过脚本访问其他用户空间来获取20积分/天。
这个脚本就是用pthon脚本定时访问论坛用户空间来获得积份,我将方法修改为放在服务器上用crond定时来执行,实现方法也很简单。
一、修改脚本代码 将以下脚本代码以UTF-8格式保存为.py文件,例如:hostloc.py 有多个账号可以保存多个文件。 修改 username = os.environ.get(‘王守义’) 中的王守义为你自己的用户名, 修改 password = os.environ.get(‘shishanxiang100’) 中的 shishanxiang100 为你账号的密码。
#!/usr/bin/python # -*- coding:utf-8 -*- import os import requests import time import random import re # 随机生成用户空间链接 def randomly_gen_uspace_url(): url_list = [] # 访问小黑屋用户空间不会获得积分、生成的随机数可能会重复,这里多生成两个链接用作冗余 for i in range(12): uid = random.randint(10000, 35000) url = "https://www.hostloc.com/space-uid-{}.html".format(str(uid)) url_list.append(url) return url_list # 登录帐户 def login(username, password): headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36" } login_url = "https://www.hostloc.com/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1" login_data = { "fastloginfield": "username", "username": username, "password": password, } s = requests.Session() s.post(url=login_url, data=login_data, headers=headers) return s # 通过抓取用户设置页面的标题检查是否登录成功 def check_login_status(s, number_c): test_url = "https://www.hostloc.com/home.php?mod=spacecp" res = s.get(test_url) res.encoding = "utf-8" test_title = re.findall("<title>.*?</title>", res.text) if test_title[0] != "<title>个人资料 - 全球主机交流论坛 - Powered by Discuz!</title>": print("第" + str(number_c) + "个帐户登录失败!") return False else: print("第" + str(number_c) + "个帐户登录成功!") return True # 依次访问随机生成的用户空间链接获取积分 def get_points(s, number_c): if check_login_status(s, number_c): url_list = randomly_gen_uspace_url() # 使用for和try/except实现当前链接访问出错时不中断程序继续访问下一个链接 for url in url_list: try: s.get(url) print("用户空间链接:" + url + " 访问成功") time.sleep(4) # 每访问一个链接后休眠4秒,以避免触发论坛的防cc机制 except Exception as e: print("链接访问异常:" + str(e)) continue else: print("请检查你的帐户是否正确!") def main_handler(event,context): username = os.environ.get('王守义') password = os.environ.get('shishanxiang100') # 分割用户名和密码为列表 user_list = username.split(",") passwd_list = password.split(",") if len(user_list) != len(passwd_list): print("用户名与密码个数不匹配,请检查环境变量设置是否错漏!") else: print("共检测到" + str(len(user_list)) + "个帐户,开始获取积分") print("**************************************************") # 使用for和try/except实现当前用户获取积分出错时不中断程序继续尝试下一个用户 for i in range(len(user_list)): try: s = login(user_list[i], passwd_list[i]) get_points(s, i + 1) print("**************************************************") except Exception as e: print("获取积分异常:" + str(e)) continue print("程序执行完毕,获取积分结束") if __name__ == "__main__": main_handler("", "")
二、修改Python环境 因为我的服务器是CenTos6系统,默认安装的是Python2.6.6,所以我们需要升级python并安装pip,如果你的服务器版本或python版本和我的一样,按照下边的流程来操作就可以了,否则可以参考步骤来进行操作。
yum install readline-devel openssl-devel openssl -y #安装需要的组件包 wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz #下载python3.6安装包 tar -xzvf Python-3.6.0.tgz #解压缩安装包 cd Python-3.6.0 #切换目录 ./configure --prefix=/usr/local/python36 make && make install #编译安装python3.6 mv /usr/bin/python /usr/bin/python-2.6.6 ln -s /usr/local/python36/bin/python3.6 /usr/bin/python #设置python3.6 因为yum是依赖python的,所以这里我们修改了默认的python,就要要修改yum,让其运行指向旧的版本 vi /usr/bin/yum 将第一行中的“#!/usr/bin/python” 修改为“#!/usr/bin/python-2.6.6”,保存即可 #设置yum curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py #安装pip ln -s /usr/local/python36/bin/pip /usr/bin/pip pip install requests #安装requests等模块 vi /etc/crontab 0 1 * * * /usr/bin/python /home/hostloc/hostloc.py service crond restart #编辑crond定时,添加一条每天1点执行的计划,脚本路径可以根据自己的修改
sicnature ---------------------------------------------------------------------
I P 地 址: 18.225.254.81
区 域 位 置: 美国俄亥俄
系 统 信 息:
Original content, please indicate the source:
同福客栈论坛 | 蟒蛇科普 | 海南乡情论坛 | JiaYu Blog
sicnature ---------------------------------------------------------------------
Welcome to reprint. Please indicate the source https://myzhenai.com/post/3470.html
1 评论
sudo /etc/init.d/cron restart