你是否曾经厌倦了每天手动签到的重复工作?是否希望能够自动化这一过程,省下宝贵的时间?在这篇文章中,我将向你展示如何通过Python编写一个自动签到脚本,使签到过程更加便捷和高效。我们将使用Python的requests库来发送网络请求,并借助第三方验证码识别服务,自动获取验证码并完成签到。让我们一起来看看如何实现这一目标吧。
步骤一:获取验证码
首先,我们需要从签到网站获取验证码图片。这个过程涉及发送GET请求来获取验证码图片,然后将其传递给验证码识别服务。在这里,我们使用了一个名为imgcode_online
的函数来完成这个任务。这个函数接受验证码图片的URL作为参数,将其转换为base64编码的数据,并将其发送到一个在线验证码识别服务。该服务将返回识别后的验证码文本。
def imgcode_online(imgurl):
data = {
'token': token, # 验证码识别服务的token
'type': 'online',
'uri': imgurl
}
response = requests.post('http://www.bhshare.cn/imgcode/', data=data)
result = json.loads(response.text)
if result['code'] == 200:
return result['data']
else:
return 'error'
步骤二:检查签到时间
在签到之前,我们需要检查是否到达签到时间。为了做到这一点,我们首先需要发送GET请求来获取上次签到的时间,并将其转换为时间戳。然后,我们将当前时间与上次签到时间进行比较,如果时间间隔大于24小时,就说明可以进行签到。
def tly():
signUrl = "https://tly30.com/modules/index.php"
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36',
'Cookie': cookie
}
res = requests.get(url=signUrl, headers=header).text
signtime = getmidstring(res, '<p>上次签到时间:<code>', '</code></p>')
timeArray = time.strptime(signtime, "%Y-%m-%d %H:%M:%S")
timeStamp = int(time.mktime(timeArray))
t = int(time.time())
if t - timeStamp > 86400:
print("距上次签到时间大于24小时啦,可以签到")
# 签到操作
captchaUrl = "https://tly30.com/other/captcha.php"
signurl = "https://tly30.com/modules/_checkin.php?captcha="
header = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36',
'Cookie': cookie
}
res1 = requests.get(url=captchaUrl, headers=header)
base64_data = base64.b64encode(res1.content)
oocr = imgcode_online('data:image/jpeg;base64,' + str(base64_data, 'utf-8'))
res2 = requests.get(url=signurl + oocr.upper(), headers=header).text
print(res2)
else:
print("还未到时间!", t - timeStamp)
总结
通过这个简单的Python脚本,我们可以轻松地自动签到并获取验证码,省去了手动操作的麻烦。你可以将这个脚本设置为定时任务,每天自动完成签到。这不仅提高了签到的效率,还让你有更多的时间专注于其他重要的事情。
希望这篇文章对你有所帮助,让你更好地理解如何使用Python自动化网站操作。如果你有任何问题或建议,欢迎在评论中分享。祝你签到顺利!