当前位置: 首页 > news >正文

作一回白嫖怪:写一个脚本自动获取ST官网积分,用积分领取奖品

环境:Python、selenium、ubuntu22.04

网址:STMCU中文官网

chrome:    版本 108.0.5359.124(正式版本) (64 位)

chromeDriver:  CNPM Binaries Mirror

这两个文件我打包起来了,0积分方便大家白嫖:https://download.csdn.net/download/c_1969/87335607

怎么安装的可以看这一篇文章:

Linux(Ubuntu)配置Chromedriver_时至二五的博客-CSDN博客_chromedriver linux

简单说,就是如下:

mv webdriver /usr/local/bin

chmod +777 webdriver

一、先给大家看看“奖品”:

        

 

 

 只要积攒够了分数就可以申请领取, 博主已经知道有人领到过了。

要注意的是这样来的:

 播主试过每天手动领取(通过下载文档的方式),由于网页打开速度满的原因,每天赞够分数需要花费半个小时。非常耽误时间,为了节省时间精力才有了下文的自动化代码。

二、代码展示:

脚本分为两个文件,

文件1:stmcu.py


class Stmcu:
    def saveparam(self,arg):
        f       = open("stmcu.txt",'w')
        f.write(arg)
        f.close()
    def getparam(self):
        f2      = open("stmcu.txt",'r')
        content = f2.read()
        f2.close()
        return content

文件2:stmcuAutoDownload.py

username.send_keys('你的账户')
password.send_keys('你的密码')


#from ctypes import WinDLL
import ctypes
from xml.dom.minidom import Element
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import re
import os

FIRSTTIME           = 1666200000
DAYLYMAXDOWNLOAD    = 29


wd      = webdriver.Chrome()
#wd.set_window_position(0,0)
#wd.set_window_size(200,200)
wd.maximize_window()

#step1 登录
wd.get('https://sso.stmicroelectronics.cn/User/LoginByPassword')
username    = wd.find_element(By.ID, 'username')
password    = wd.find_element(By.ID, 'password')
loginbtn    = wd.find_element(By.XPATH, '//input[@type="submit"]')

username.send_keys('你的账户')
password.send_keys('你的密码')
loginbtn.click()


#"""
wd.get('https://www.stmcu.com.cn/Product/pro_detail/PRODUCTSTM32/design_resource')

es      = wd.find_elements(By.CLASS_NAME, 'cd_lan')
i   = 0
maxup       = 10
    #print(e.get_attribute('href'))
    #print(e.text);
"""    
for e in es:
    i   = i + 1
    if 'ES0005_STM32F205或207xx和STM32F215或217xx...' == e.text:
        print('ok')
        print(i)
        #print(es.index(i).text)
        break
"""
j   = 0
ls  = list()
#step02 获取开始位置
"""
curday      = int((time.time() - FIRSTTIME)/86400)
curindex    = 774+curday*10
print('day:'+str(curday))
"""
from stmcu import Stmcu
stmcu           = Stmcu()
curindex        = int(stmcu.getparam())

#step03 获取链接
for e in es:
    j  = j + 1
    if j < curindex:
        continue
    print(e.text)
    if None!=re.match('https://www.stmcu.com.cn/Designresource/detail/document/[\s\S]+',e.get_attribute('href')):
        ls.append(e.get_attribute('href'))
    else:
        curindex = curindex + 1
    #wd.execute_script('window.open("'+e.get_attribute('href')+'")')
    if j >= curindex + DAYLYMAXDOWNLOAD:
        break
stmcu.saveparam(str(curindex+DAYLYMAXDOWNLOAD))
#step04 打开链接并下载
for k in ls:
    try:
        print(k)
        wd.execute_script('window.open("'+k+'")')
        handles = wd.window_handles
        wd.switch_to.window(handles[-1])
        item = wd.find_element(By.XPATH, '//*[@id="down_load_btn"]')
        item.click()
        wd.switch_to.window(handles[1])
        time.sleep(5)
    except:
        wd.get_screenshot_as_png()
        continue

    #break


文件3:运行后生成

代码运行后,会生成 stmcu.txt 这一文件,用于保存下载文件的位置。毕竟要达到几万的积分,需要下载几千个文件,如果将文件随意下载,很有可能会造成重复下载的问题,而重复下载是不能获取积分的。

三、效果展示:

 已经为我获得了一万多的积分。

当前已经下载了3000+文档,一共6000+文档,等脚本运行完成,我就要领取一个高端开发板了(大概值,没仔细数)。

 

相关文章:

  • 标题优化seo/seo是广告投放吗
  • 做网做网站建设/申请网址怎么申请的
  • 做网站怎么在主机上放图片/免费google账号注册入口
  • 访问网站有音乐背景怎么做/友链交易平台
  • 怎么才能建立一个网站/企业网站推广的形式有
  • 做游戏推广网站/软文是什么意思通俗点
  • kali渗透测试系列---信息收集
  • 学python以后做什么工作
  • Python 的列表方法 append 和 extend 有什么区别?
  • 第27章 MySQL 临时表教程
  • Java项目:springboot私人牙医管理系统
  • SpringBoot系列之整合MyBatis框架
  • 低代码多分支协同开发的建设与实践
  • 是谣传还是真强?GitHub一战封神的“SQL优化手册”获赞过百万
  • 2022年终总结-两年Androider的成长之路
  • URLLC应用场景及未来发展研究
  • rabbitmq基础5——集群节点类型、集群节基础运维,集群管理命令
  • 避坑细节拉满!阿里p8技术官私传:MyBatis源码全解析,全彩版附代码分享