玩VPS的圈子里,估计没几个不知道全球主机交流论坛(Hostloc)的吧?我自个儿也天天上去潜水,看看大佬们撕逼,顺便淘点有用的信息。不过对于刚注册的新人来说,等级太低确实是个痛点,不少板块都进不去。好在论坛有个升级机制,每天去访问10个不同用户的空间,就能拿到20个金币。手动点肯定是不现实的,之前GitHub上有些大佬分享的自动脚本,可惜不少都让C大的防御给干掉了。今天我这儿就分享一个目前亲测还能用的脚本,给有需要的朋友。
首先,你得有台VPS,哪怕是吃灰的也行。装好宝塔面板,然后确保你的环境里有Python 3。
Debian或Ubuntu系统的朋友,直接用这个命令:
apt-get install python3-pip
用CentOS系统的,就敲这个:
yum install python3
环境搞定后,打开宝塔面板的文件管理器,在你喜欢的位置新建一个PY文件。名字随便起,别太骚就行,我就直接在/home/www目录下建了个loc.py。切记,一定要用宝塔在线新建和编辑,别在自己电脑上用记事本弄,不然编码格式可能会出问题。然后,把下面这段代码完整地复制进去,找到账号密码那部分,改成你自己的。这脚本还支持多账号,照着格式加就行了。
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Author: MoeClub.org
import re
import sys
import time
from urllib import request, parse
from http import cookiejar
account_dict = {
'0': {'username': '账号A', 'password': '密码A'},
'1': {'username': '账户B', 'password': '密码B'},
}
def Login(URL, UserData):
_cookies = ''
_cookie = cookiejar.CookieJar()
_handler = request.HTTPCookieProcessor(_cookie)
_req = request.Request(URL, data=parse.urlencode(UserData).encode('utf-8'))
request.build_opener(_handler).open(_req)
for cookie in _cookie:
_cookies += cookie.name + '=' + cookie.value + ';'
return _cookies
def GetPage(URL, Header_Cookies):
_Header = {'Cookie': str(Header_Cookies)}
_req = request.Request(URL, headers=_Header)
return request.urlopen(_req).read().decode('utf-8')
def GetCredit(user_data, proto='https'):
username = user_data['username']
Login_URL = proto + '://hostloc.com/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1'
My_Credit = proto + '://hostloc.com/home.php?mod=spacecp&ac=credit&showcredit=1&inajax=1'
My_Home = proto + '://hostloc.com/home.php?mod=spacecp&inajax=1'
My_Cookies = Login(Login_URL, user_data)
if '<td>' + str(username) + '</td>' not in GetPage(My_Home, My_Cookies):
print('[%s] Login Fail!' % username)
else:
try:
CreditNum0 = str(re.findall('[0-9]+', GetPage(My_Credit, My_Cookies))[-1])
except:
CreditNum0 = 'Null'
for x in range(25297, 25309):
GetPage(proto + '://hostloc.com/space-uid-{}.html'.format(x), My_Cookies)
time.sleep(4)
try:
if CreditNum0 == 'Null':
raise Exception
CreditNum1 = str(re.findall('[0-9]+', GetPage(My_Credit, My_Cookies))[-1])
if CreditNum0 == CreditNum1:
CreditDetails = str(CreditNum1)
else:
CreditDetails = str(CreditNum0) + '->' + str(CreditNum1)
except:
CreditDetails = 'Null'
print('[%s] Login Success! (Credit: %s)' % (username, CreditDetails))
if __name__ == '__main__':
if len(sys.argv) > 1:
n = 0
account_dict = {}
account_list = [sys.argv[x] for x in range(1, len(sys.argv))]
for account in account_list:
if ":" not in account:
continue
account_dict[str(n)] = {}
account_dict[str(n)]['username'] = str(str(account).split(":", 1)[0])
account_dict[str(n)]['password'] = str(str(account).split(":", 1)[-1])
n += 1
for i in range(0, len(account_dict)):
try:
GetCredit(account_dict[str(i)])
time.sleep(4)
except:
continue
脚本放好了,总不能每天自己去手动执行吧?那还叫什么懒人福利。打开宝塔的“计划任务”,添加一个Shell脚本任务,任务内容就填 `python3 /home/www/loc.py`(注意换成你自己的py文件路径),执行周期设置成每天一次,时间你随便定。这样就能每天定时帮你签到领20金币了。坚持挂个150天,你也是元老了。当然了,纯挂机刷分有风险,版主们眼睛尖着呢,偶尔还是要去论坛里冒个泡,正经水水贴,不然被当成纯刷分号给清理了可就白忙活了。
最后说一句,如果你一直想进LOC论坛但苦于没有门路,可以发邮件给我(邮箱在关于页面),我手里还有几个邀请码,可以发给你。
评论前必须登录!
注册