因为优矿内存默认1G,回测不够用,而目前所知唯一扩大内存的途径就获得积分兑换内存。积分的途径有每天签到、发帖获赞等方式,但是菜鸟获赞很难,所以就写一个签到获得积分的python脚本,使用selenium模块和crontab工具,最终部署于阿里云。

  • py脚本部分

这部分要上优矿的主页,摸清楚登录和签到流程,这需要多试几次找到最优流程。然后通过qq邮件通知签到成功和当前积分。

Qq邮箱设置参考https://www.cnblogs.com/kimsbo/p/10671851.html

python代码如下:

# -*- coding: utf-8 -*-
"""
Spyder EditorThis is a temporary script file.
"""
#用于有优矿签到,获得积分
# -*- coding: UTF-8 -*-
from pyvirtualdisplay import Display
from selenium import webdriver
#from selenium.webdriver import FirefoxOptions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from time import sleep
import smtplib
from email.mime.text import MIMEText
from email.header import Header
from bs4 import BeautifulSoupdef getpoint(url,name,password):driver.get(url)wait = WebDriverWait(driver, 60)#论坛右上角点击登录wait.until(EC.presence_of_element_located((By.XPATH, '/html/body/div[2]/div/div[1]/div/div/div/a[1]'))).click()sleep(3)wait = WebDriverWait(driver, 100)wait.until(EC.presence_of_element_located((By.XPATH,"/html/body/div[2]/div/div[2]/div/div[3]/div/div/form/div[1]/input"))).send_keys(name)driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[3]/div/div/form/div[2]/input").send_keys(password)driver.find_element_by_xpath("/html/body/div[2]/div/div[2]/div/div[3]/div/div/form/a").click()#driver.close()sleep(1)wait = WebDriverWait(driver, 60)wait.until(EC.presence_of_element_located((By.XPATH, '/html/body/div[2]/div/div[2]/div/div[2]/div[1]/button[2]'))).click()print('点击获得积分')driver.refresh()sleep(2)    pageSource=driver.page_sourceSoup=BeautifulSoup(pageSource)credits=Soup.find('a', {'href':'/community/mall'}).get_text()print(credits)return creditsdef sendEmail(credits):smtp = "smtp.qq.com"sender='XX@qq.com'receiver='XX@qq.com'#这个密码不是邮箱密码,设置stmp后页面会显示pwd='XX'title = '已运行,当前积分{}'.format(credits)contents = "{}发送给{}的邮件".format(sender, receiver)ldqplxo = MIMEText(contents, 'plain')ldqplxo['From'] = Header(sender)ldqplxo['To'] = Header(receiver)ldqplxo['Subject'] = Header(title)mbdrewr = smtplib.SMTP_SSL(smtp, 465)mbdrewr.login(sender, pwd)mbdrewr.sendmail(sender, receiver, ldqplxo.as_string())mbdrewr.quit()display=Display(visible=0,size=(1400,900))
display.start()driver= webdriver.Firefox(executable_path="你自己的路径/geckodriver")
url='https://uqer.io/v3/community'
name='X'
password='X'
credits=0
while credits==0:credits=getpoint(url, name, password)
sendEmail(credits)
display.stop()
  • crontab定时重复执行

虽然windows自带执行任务功能,但是由于签到需要联网,笔记本不能保证做到,所以还是阿里云比较合适。第一次使用crontab工具,中间坑很多。

  1. pip install contab
  2. 修改日志管理文件

参考这个https://blog.csdn.net/lrs1353281004/article/details/104007759

3.注意要使用绝对路径,否则系统内装了多个python,默认使用的不一定是你想用的。

4.设置输出

使用crontab过程,执行脚本可能会出错,这就需要查看报错情况,否则运行没结果,也不知道怎么回事。参考https://blog.csdn.net/u012129607/article/details/80418149

这次遇到一个大坑,脚本可以直接执行,但是用crontab一直不行,花了很长时间,才使用*/1 * * * * /root/XXXX.py> /tmp/load.log 2>&1 & 语句,通过查看load.log发现是执行selenium过程中找不到geckodriver。于是加上

driver=webdriver.Firefox(executable_path=你自己的路径/geckodriver),才大功告成。

Crontab的潜力还可以继续挖掘。

使用python脚本和crontab在阿里云实现优矿自动签到相关推荐

  1. Linux环境Shell脚本上传下载阿里云OSS文件

    为什么80%的码农都做不了架构师?>>>    Linux环境Shell脚本上传下载阿里云OSS文件 背景 工作中由于我们项目生成的日志文件比较重要,而本地磁盘空间有限存储不了多久, ...

  2. 数据库 用Python把数据写入到MySQL数据库/如何使用Python将数据写入到阿里云的RDS-MYSQL

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/weixin_42555401 需要解决的问题: 1.用Python把数据写入到MySQL数据库? 2 ...

  3. 个人博客,懒人终章部署,阿里云Ecs+Jenkins+Gitee自动,一键部署SpringBoot自己博客项目,还在用

    阿里云Ecs+Jenkins+Gitee自动,一键部署SpringBoot自己博客项目: 最近看见网上很多Jenkins的自动部署SpringBoot的Demo,但是都要自己安装JDK,Maven.. ...

  4. 阿里云联手优酷推出工程师必看电影片单,高分烧脑假期必备!

    阿里云联手优酷推出工程师必看电影片单,高分烧脑假期必备! 点这里直接进入观看页面:) 话不多说,上豆瓣简介及评分~ 看不见的客人 "调度上有种将阿加莎小说当代化的直感 谷仓之冰和密室的三重解 ...

  5. 阿里云联手优酷推出工程师必看电影片单,高分烧脑假期必备!...

    阿里云联手优酷推出工程师必看电影片单,高分烧脑假期必备! 点这里直接进入观看页面:) 话不多说,上豆瓣简介及评分~ 看不见的客人 "调度上有种将阿加莎小说当代化的直感 谷仓之冰和密室的三重解 ...

  6. python 智能识别 商品_阿里云货架商品识别与管理Python SDK使用示例-阿里云开发者社区...

    概述 货架商品识别与管理(Retail Image Recognition)是基于深度学习.图像检测.图像识别等技术,为新零售品牌商/经销商提供AI商品识别能力的阿里云产品:适用于货架商品识别.陈列识 ...

  7. python消息推送_Python阿里云消息推送调用API

    很多公司测试APP推送时候,应该也是很头疼:推送环境:测试.正式,稍不注意就把测试的push到正式上,导致所有用户都收到 例子很多: 其实阿里.极光都有推送Api,直接调用API就ok,特别是有的公司 ...

  8. rcs开机启动mysql_linux添加开机自启动脚本示例详解-阿里云开发者社区

    linux添加开机自启动脚本示例详解 double2li 2017-04-14 1652浏览量 简介: linux下(以RedHat为范本)添加开机自启动脚本有两种方法,先来简单的;一.在/etc/r ...

  9. python数据包发送给云平台_用python发送短消息(基于阿里云平台)

    新版短信接口在线测试页面:https://api.aliyun.com/new#/?product=Dysmsapi&api=SendSms&params={}&tab=DEM ...

  10. 阿里云python自测答案_阿里云技能测试python初级中级高级

    简介 偶尔发现,阿里云-开发者社区,里竟然有技能测试平台 覆盖知识面也较多 初级(65) 涉及知识点:Python语言的基本特性.编程环境.语法基础.数据结构,了解Python的网络编程与Web开发, ...

最新文章

  1. R语言grafify包简单、快速绘制19个漂亮的统计图实战
  2. 机器学习丨15个最流行的GitHub机器学习项目
  3. Java记录 -22- Java的基类Object详解
  4. IT行业常见职位职业路线图
  5. Windows 技术篇-windows家庭版win+R运行搜不到gpedit.msc组策略编辑器解决方法,windows安装组策略编辑器方法
  6. Lucene排序以及自定义排序
  7. 均匀白噪声的定义及特点_职业卫生噪声布点与检测实务
  8. Redis 支持的数据类型
  9. jhat命令 Java Heap Analyse Tool
  10. java 数组转字符串 字符串转数组,java高级面试笔试题
  11. 【转】Java 8十个lambda表达式案例
  12. 《百面机器学习》读书笔记
  13. Response.AddHeader 参数
  14. 用c++语言写1加到100,C++ 语言实现1加到100(初学者)
  15. 未识别的网络解决办法
  16. 如何VS Code打造成Java开发IDE?
  17. 笔记本无线网卡开启wifi方法
  18. 文华编程是c 语言吗,华中科技大学文华学院级软件工程c语言.docx
  19. 方向导数(Directional derivatives)
  20. 小白都能看懂的go语言包管理工具DEP详解

热门文章

  1. 实习期间工作、学习、成长、收获总结
  2. 语音情绪识别.PDF
  3. kubectl命令的使用、滚动更新以及回滚操作
  4. C++ 模板函数 二分查找
  5. 并行程序设计导论 概念总结
  6. python 变量后加逗号的含义
  7. 编码原则 之 Separation of Concerns
  8. TPshop项目介绍
  9. 用Opencv给韦小宝的身份证透视变换
  10. linux统计代码耗时函数,统计函数执行耗时