全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 10274|回复: 38

听说你们的loc签到脚本不好使了?

  [复制链接]
发表于 2019-1-21 13:52:49 | 显示全部楼层 |阅读模式
本帖最后由 Abbey 于 2019-1-21 13:59 编辑




  1. #-*- coding=utf-8 -*-
  2. import requests
  3. import re
  4. import sys
  5. import urllib3
  6. import time

  7. urllib3.disable_warnings()

  8. index='https://www.hostloc.com/'
  9. page_url='https://www.hostloc.com/forum-45-1.html'
  10. credit_url='https://www.hostloc.com/home.php?mod=spacecp&ac=credit&showcredit=1'
  11. login_url='https://www.hostloc.com/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1'
  12. login_data={
  13.         'fastloginfield':'username'
  14.         ,'username':''
  15.         ,'cookietime':'2592000'
  16.         ,'password':''
  17.         ,'quickforward':'yes'
  18.         ,'handlekey':'ls'
  19.     }
  20. headers={
  21.     'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
  22.     ,'Accept-Encoding':'gzip, deflate, sdch'
  23.     ,'Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6'
  24.     ,'Host':'www.hostloc.com'
  25.     ,'Referer':'https://www.hostloc.com/forum.php'
  26.     ,'Upgrade-Insecure-Requests':'1'
  27.     ,'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
  28. }


  29. class HostLoc():
  30.     def __init__(self,username,passwd):
  31.         self.username=username
  32.         self.passwd=passwd
  33.         self.session=requests.Session()
  34.         self.session.headers=headers
  35.         login_data['username']=username
  36.         login_data['password']=passwd
  37.         login_data['formhash']=self.get_hidden_value(index,'formhash')
  38.         self.login()


  39.     def login(self):
  40.         self.session.post(login_url,data=login_data,verify=False)

  41.     def isLogin(self):
  42.         url='https://www.hostloc.com/home.php?mod=spacecp'
  43.         html=self.session.get(url).text
  44.         UserName=re.findall(self.username,html)
  45.         if len(UserName)==0:
  46.             return False
  47.         else:
  48.             return True

  49.     def get_credit(self):
  50.         html=self.session.get(credit_url,verify=False).text
  51.         credit_pattern=re.compile(u'</ul><ul class="creditl mtm bbda cl"><li class="xi1 cl"><em> 金钱: </em>(.*?)  .*? </li>[\w\W]*?<li><em> 威望: </em>(.*?) </li>[\w\W]*?<li class="cl"><em>积分: </em>(.*?) <span class="xg1">')
  52.         try:
  53.             credit=credit_pattern.findall(html)
  54.             coin,wh,jf=credit[0]
  55.             print(u"{} coin:{},wei wang:{},jifen:{}".format(self.username,coin,wh,jf))
  56.             return True
  57.         except Exception as e:
  58.             print(u"{} fetch data error!:{}".format(self.username,e))
  59.             return False

  60.     def get_user(self):
  61.         print('parse '+page_url)
  62.         self.html=self.session.get(page_url,verify=False).text
  63.         user_pattern=re.compile('space-uid-\d+?.html')
  64.         users=list(set(user_pattern.findall(self.html)))
  65.         self.users=[index+i for i in users]

  66.     def visit_user(self):
  67.         for user in self.users[:10]:
  68.             print('visit user '+user)
  69.             self.session.get(user)

  70.     def get_hidden_value(self,url,keyname):
  71.         r=self.session.get(url)
  72.         cont=r.text
  73.         value=re.findall('<input type="hidden" name="{}" value="(.*?)" />'.format(keyname),cont)[0]
  74.         return value


  75. def start():
  76.     #多用户配置
  77.     #格式为:[[username1,password1],[username2,password2],[username3,password3]]
  78.     users=[
  79.         ['user1','password1'],
  80.         ['user2','password2'],
  81.     ]
  82.     for username,passwd in users:
  83.         hostloc=HostLoc(username,passwd)
  84.         if hostloc.get_credit():
  85.             hostloc.get_user()
  86.             hostloc.visit_user()
  87.             hostloc.get_credit()


  88. def main_handler(event, context):
  89.     return start()

  90. if __name__=='__main__':
  91.     start()
复制代码


发上我的脚本,搭配腾讯云scf(无服务器函数)每天自动签到,scf配置内容:


设置好用户名和密码,支持多用户签到
发表于 2019-1-22 01:10:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2019-1-21 18:33:16 | 显示全部楼层
我自己python写的  无压力
发表于 2019-1-21 18:28:52 | 显示全部楼层
是CC防护的原因,现在登陆正常了
发表于 2019-1-21 14:13:11 | 显示全部楼层
你这个没有提交js 那个字符串,肯定不行
发表于 2019-1-21 13:57:08 | 显示全部楼层
mark,感谢分享
发表于 2019-1-21 13:57:37 | 显示全部楼层
我的监控已经修复。又可以抢沙发了。
发表于 2019-1-21 14:03:26 | 显示全部楼层
本帖最后由 leassy 于 2019-1-21 14:04 编辑

刚试了一下你的代码也不行啊
HTTP 错误 502.2 - Bad Gateway
指定的 CGI 应用程序由于未返回完整的一组 HTTP 头而产生错误行为。它实际返回的头是“
发表于 2019-1-21 14:06:32 | 显示全部楼层
CURL调用不行,直接浏览器访问可以
发表于 2019-1-21 14:07:19 | 显示全部楼层
太复杂了  只会拿鼠标点
 楼主| 发表于 2019-1-21 14:07:42 来自手机 | 显示全部楼层
leassy 发表于 2019-1-21 14:03
刚试了一下你的代码也不行啊
HTTP 错误 502.2 - Bad Gateway
指定的 CGI 应用程序由于未返回完整的一组 HTT ...

我这个是用在无服务器函数上的,一切正常
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-3-27 14:09 , Processed in 0.077083 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表