OLINK CLOUD 针对中国大陆优化线路高性价比VPS

德国CN2-GIA三网优化回国线路vps,最低每月5$起,点击购买 (终身9折优惠码:OLINK)

仔细读过hostloc论坛积分规则的人,应该会发现有个方法可以快速获得积分,实现升级。就是每天访问10个人的空间,可总计获得20积分。所以某位坛友写了个每日翻牌脚本,自己挂在vps上设个定时任务,升级元老指日可待。

注意:

运行这个脚本需要先安装、配置好python和相关环境,具体方法网上很多。说一下我遇到过的错误,是缺少两个python的模块,根据报错信息安装好就可以了。解决示例:

1
2
pip install requests
pip install bs4

hostloc论坛每日翻牌

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#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("今日累了,明日再翻!")

设置定时任务

先在脚本第一行加上

1
#!/usr/bin/python

然后设置crontab

1
crontab -e

在最后添加

1
30 9 * * * /home/hostloc.py

为何要在脚本第一行必须明确指定解释程序?


脚本来源:hostloc.py

评论