定时自动提交问卷星讲座信息

# -*- coding: UTF-8 -*-
# "特定时刻自动填写问卷星,事先只知道问卷url和post_data"
# "最新版的问卷星self._uri_param中hlv, sd, ktimes, jqnonce, jqsign 需要添加,求助前辈,谢谢"

import schedule
import re
import requests
from urllib import request, parse
from time import time, strftime, localtime

class Sojump(object):
    def __init__(self, jq_url):
        self._uri_param = {}
        self._jq_url = jq_url
        self._jq_base = "https://www.wjx.top/jq/29947929.aspx"
        self._uri_base = "https://www.wjx.top/joinnew/processjq.ashx?{}"
        self._init_param()

    def _init_param(self):
        resp = request.urlopen(self._jq_url)
        text = resp.read().decode()
        self._uri_param['submittype'] = '1'
        self._uri_param['t'] = str(int(time() * 1000))
        self._uri_param['starttime'] = strftime("%Y/%m/%d %H:%M:%S", localtime())
        self._uri_param['rn'] = re.search(r'rndnum="(\d+)(.\d*)*"', text).group(1)
        self._uri_param['curID'] = re.search(r'(\d+).aspx', resp.geturl()).group(1) 
        # hlv, sd, ktimes, jqnonce, jqsign 需要添加

    def job(self):

        data = {'submitdata':'1$xiaoming}2$2}3$3'} 
        # url = 'https://www.wjx.top/joinnew/processjq.ashx?submittype=1&curID=29947929&t=1540814900034&validate_text=mpr7&starttime=2018%2F10%2F29%2020%3A05%3A09&rn=989089766.09490419&hlv=1&sd=http%3a%2f%2fwww.wjx.cn%2f&ktimes=46&jqnonce=781f04a9-55e0-4b9b-be6f-3d38c2db9c03&jqsign=%19%16%1FH%1E%1AO%17%03%1B%1BK%1E%03%1AL%17L%03LK%18H%03%1DJ%1D%16M%1CJL%17M%1E%1D'
        get_data = parse.urlencode(self._uri_param)
        request_url = self._uri_base.format(get_data)
        req = requests.post(request_url, data)
        print(req.text)


if __name__ == '__main__':
    sj = Sojump("https://www.wjx.top/jq/29947929.aspx")

    schedule.every(0.1).minutes.do(sj.job)
    # schedule.every().wednesday.at("13:15").do(sj.job) # 待修改

    while True:
        schedule.run_pending()

图片说明

https://q.cnblogs.com/q/110707/