日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ajax form表单提交_开发日志:金数据表单自动提交脚本

發(fā)布時(shí)間:2025/3/20 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ajax form表单提交_开发日志:金数据表单自动提交脚本 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近學(xué)校要求我們每天通過(guò)一個(gè)在線表單打卡自己在家做的體育課項(xiàng)目,在提交的時(shí)候我突然想了下如果能有一個(gè)自動(dòng)的系統(tǒng)每天幫我自動(dòng)打卡豈不是能省很多時(shí)間?而且我一直很想學(xué)Python的網(wǎng)絡(luò)爬蟲(chóng)以及服務(wù)器后端的知識(shí),所以開(kāi)始著手開(kāi)發(fā)這個(gè)項(xiàng)目。

首先附上項(xiàng)目地址:

https://github.com/MohaElder/AutomaticClockInSHSID?github.com

項(xiàng)目用到的語(yǔ)言:

HTML,CSS,Javascript(用于編寫(xiě)前端交互頁(yè)面)

Python:后端服務(wù)代碼

項(xiàng)目第三方依賴(lài):

Jquery, Flask, APScheduler, CORS, selenium, yagmail

項(xiàng)目文件結(jié)構(gòu):

server.py:后端服務(wù)(本來(lái)還加了一個(gè)tornado用來(lái)host,但是發(fā)現(xiàn)apscheduler要重新寫(xiě)就丟棄了)

index.html:前端網(wǎng)頁(yè)

style.css:前端網(wǎng)頁(yè)樣式文件

項(xiàng)目功能:

實(shí)現(xiàn)提交相關(guān)信息后在特定網(wǎng)頁(yè)上每隔24小時(shí)按照相關(guān)信息提交一次表單, 并且發(fā)送郵件告知用戶表單提交結(jié)果(網(wǎng)頁(yè)截圖方式)

下面來(lái)講一下項(xiàng)目的整體實(shí)現(xiàn)過(guò)程:

我花了大概六個(gè)小時(shí)在這個(gè)項(xiàng)目上面。在這六個(gè)小時(shí)中,我從0學(xué)習(xí)了Flask和Selenium并且花了很大一部分時(shí)間在探索Requests,Beautiful Soup以及RoboBrowser這些庫(kù)上面。

首先我們來(lái)看一下需要自動(dòng)提交的表單:

表單提供商是金數(shù)據(jù)公司,表單格式我們通過(guò)檢查元素后發(fā)現(xiàn)是基本的<form>

順便我要吐槽這個(gè)token怎么是存在一個(gè)hidden input上面的

通過(guò)Postman上的提交嘗試后,我發(fā)現(xiàn)表單提交需要驗(yàn)證token。

對(duì)于這個(gè)項(xiàng)目我一開(kāi)始有兩個(gè)思路:

1. 使用Requests和RoboBrowser實(shí)現(xiàn)抓取表單并自動(dòng)提交表單

優(yōu)點(diǎn):速度快,調(diào)用資源少

缺點(diǎn):token驗(yàn)證較麻煩

2. 使用Selenium+Headless Browser(這里我使用了chrome)模擬用戶點(diǎn)擊并自動(dòng)提交表單

優(yōu)點(diǎn):簡(jiǎn)單直白,不需要應(yīng)付token驗(yàn)證

缺點(diǎn):調(diào)用資源較多


在嘗試方法一時(shí),我發(fā)現(xiàn)這個(gè)表單選擇班級(jí)的下拉框里面的內(nèi)容是根據(jù)選擇第一個(gè)年紀(jì)下拉框后自動(dòng)生成的,所以我并不能通過(guò)robobrowser一次性提交。因?yàn)榈诙€(gè)下拉框的options會(huì)檢測(cè)不到我的value并報(bào)錯(cuò)。經(jīng)過(guò)反復(fù)嘗試還是不行,所以我準(zhǔn)備使用方法2。

方法2的Selenium真的是簡(jiǎn)單爽快,一行代碼就是一次操作。我花了10分鐘就寫(xiě)好了提交表單的邏輯代碼。

很簡(jiǎn)單很直白的代碼

在實(shí)現(xiàn)了自動(dòng)提交表單這一操作后,我決定把它做成在線版。于是我使用了Flask作為web框架并創(chuàng)建了/clockin (method:POST)這個(gè)方法用來(lái)從前端提交表單相關(guān)信息。

這里我還使用了全局變量來(lái)動(dòng)態(tài)添加新的用戶并放入接下來(lái)提到的定時(shí)執(zhí)行數(shù)組

在定時(shí)執(zhí)行這一塊,我使用了APscheduler作為執(zhí)行庫(kù),設(shè)置的是每30秒(方便測(cè)試)運(yùn)行一次循環(huán)自動(dòng)提交表單。

在發(fā)送郵件方法中,我使用了yagmail這個(gè)庫(kù)調(diào)用我的qq郵箱發(fā)送郵件給用戶。使用這個(gè)庫(kù)的原因是因?yàn)樗恼{(diào)用方式很簡(jiǎn)潔,比原生的要方便很多。

以上就是這個(gè)項(xiàng)目所有的重點(diǎn)部分,我通過(guò)這個(gè)項(xiàng)目收獲了很多,學(xué)會(huì)了flask和爬蟲(chóng)的基礎(chǔ)。希望大家能夠在看完這篇日記后也有所收獲~

歡迎各位在評(píng)論區(qū)留下反饋建議

總結(jié)

以上是生活随笔為你收集整理的ajax form表单提交_开发日志:金数据表单自动提交脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。