仔细读过hostloc论坛积分规则的人,应该会发现有个方法可以快速获得积分,实现升级。就是每天访问10个人的空间,可总计获得20积分。所以某位坛友写了个每日翻牌脚本,自己挂在vps上设个定时任务,升级元老指日可待。
注意:
运行这个脚本需要先安装、配置好python和相关环境,具体方法网上很多。说一下我遇到过的错误,是缺少两个python的模块,根据报错信息安装好就可以了。解决示例:
pip install requests
pip install bs4
hostloc论坛每日翻牌
#encoding=utf-8
import requests
from bs4 import BeautifulSoup
import re
import sys
import datetime
uid="11111" #用户名
pwd="11111" #密码
http = requests.Session()
http.headers.update({
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
,'Accept-Language':"zh-CN,zh;q=0.8,ko;q=0.6,zh-TW;q=0.4"
})
#http.proxies = {"http":"http://127.0.0.1:8080","https":"http://127.0.0.1:8080"}
##打开登陆界面
res=http.get("http://www.hostloc.com/member.php?mod=logging&action=login&infloat=yes&handlekey=login&inajax=1&ajaxtarget=fwin_content_login")
match=re.search(r'name="formhash" value="(\S+)"',res.text)
if(match):
formhash=match.group(1)
else:
exit(0)
##登陆
form={
"formhash":formhash
,"referer":"http://www.hostloc.com/thread-12949-1-1.html"
,"loginfield":"username"
,"username":uid
,"password":pwd
,"questionid":0
,"answer":""
,"loginsubmit":"true"
}
res=http.post("http://www.hostloc.com/member.php?mod=logging&action=login&loginsubmit=yes&handlekey=login&loginhash=LWKbr&inajax=1",data=form)
match=re.search(r"'uid':'",res.text)
if(match):
print("登陆成功")
else:
print("登陆失败")
exit(0)
##查询今天访问的空间数量
res=http.get("http://www.hostloc.com/home.php?mod=spacecp&ac=credit&op=log&suboperation=creditrulelog")
bs=BeautifulSoup(res.text,"html.parser")
td=bs.find('td',string="访问别人空间")
if(td==None):
print("信息获取失败")
exit(0)
tds=td.parent.find_all("td")
today_view_count=int(tds[2].text) #今天已经翻牌数
last_view_date=tds[5].text #上次翻牌时间,这个时间不会自动刷新,所以不能仅仅依据数量就决定不翻牌
need_view=last_view_date.find(datetime.datetime.now().strftime("%Y-%m-%d"))==-1 #上次翻牌时间是不是今天,不是今天则需要翻
if(today_view_count>=10 and (not need_view)): #不论数量多少,只要上次翻牌时间不是今天就翻。上次翻牌是今天才去判断数量
print("今日累了,明日再翻!")
exit(0)
##去首页获取等待临幸的网址
res=http.get("http://www.hostloc.com/forum-45-1.html")
users =re.findall("(space-uid\S+)\"",res.text)
viewed=set()
num=0
while num <13:
url = users.pop()
if(url in viewed):continue
viewed.add(url)
print(url)
res=http.get('http://www.hostloc.com/'+url)
users.extend(re.findall("(space-uid\S+)\"",res.text))
num+=1
print("今日累了,明日再翻!")
设置定时任务
先在脚本第一行加上
#!/usr/bin/python
然后设置crontab
crontab -e
在最后添加
30 9 * * * /home/hostloc.py
为何要在脚本第一行必须明确指定解释程序?
脚本来源:hostloc.py