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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

问卷星全自动填写脚本浅尝

發(fā)布時間:2023/12/31 编程问答 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 问卷星全自动填写脚本浅尝 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、需求分析

  • 這兩天有一個小伙伴出于論文的需要,請教我是否有辦法可以給問卷星刷單。由于需要幾百份的數(shù)據(jù),人工刷起來比較麻煩,為此我便研究了一番。
  • 剛開始嘗試py腳本,使用post表單的方式進行刷單。經(jīng)過嘗試后發(fā)現(xiàn),在post的請求鏈接中包含有許多個參數(shù)需要進行對應(yīng)的計算才能得到的。由于繼續(xù)這個方式,需要研究網(wǎng)頁的源碼,感覺比較費勁,暫時擱置了。
  • 之后嘗試了使用模擬操作的方式進行,過程使用油猴腳本進行模擬操作,最終也實現(xiàn)了想要的功能。
  • 貼一下原文地址:https://itxiaoye.top/article/10 [ [ 我的文章] ]

二、工具選取

  • 油猴插件 [ 下載 ]:這個插件很好玩的,還可以找到各種瀏覽器的油猴腳本,例如:視頻去vip等等;
  • 代碼編輯器:我用的vscode進行的代碼編輯,按照個人的代碼編寫習(xí)慣,只要是能夠進行文本編輯的軟件就可以了;
  • AutoHotkey [ 下載 ]:這是一個可以運行在電腦上進行模擬操作的腳本編譯器,我也是第一次用,可以一塊探討學(xué)習(xí),挺有意思的!
  • 三、摸索過程

    急切需要得知解決方案de小伙伴們,可以直接奔向==>【四、解決方案】

    20220313

  • 一開始直接使用 fiddler 抓包工具,監(jiān)聽問卷星填單完成后提交的請求,從中找到對應(yīng)的請求鏈接和發(fā)送數(shù)據(jù),使用py模擬相同的post請求:

    ua = UserAgent() def get_headers() -> json:return {"User-Agent": ua.random, #隨機代理"Referer": "https://www.wjx.cn/jq/27644141.aspx","Origin": "https://www.wjx.cn",}url = "https://www.wjx.cn/joinnew/processjq.ashx?curID=27644131&submittype=1&t=1647062508952&starttime=2022%2F3%2F12%2013%3A21%3A28&ktimes=169&rn=2104031809&jqpram=HMLSiLXZb&hlv=1&sd=http%3a%2f%2fwww.wjx.cn%2f&jqnonce=df6a765a-2be7-47f9-97f2-94304e4138f2&jqsign=mo%3Fh%3E%3F%3Ch%24%3Bkl%3E%24%3D%3Eo0%240%3Eo%3B%240%3D%3A9%3Dl%3D8%3A1o%3B&jwt=6&nw=1&jpm=55"#請求鏈接 data ="submitdata=1%243%7D2%241%7D3%241%7D4%241%7C2%7D5%243%7D6%243%7D7%243%7D8%242%7D9%242%7D10%246%7C7%7D11%243%7D12%243%7D13%242" #請求數(shù)據(jù) sleep_time = 12 # 休眠時間while True:try:r = requests.post(url, headers=get_headers(), data=data)print("------ "+datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]+" ,"+str(r.text)+"------")except Exception as e:logging.error(e)time.sleep(sleep_time)
  • 經(jīng)過測試發(fā)現(xiàn),請求的時候會返回提示(------ 2022-03-14 17:57:33.678 ,7〒請點擊智能驗證碼進行驗證!------),經(jīng)過分析發(fā)現(xiàn)是請求鏈接后邊的一堆變量需要根據(jù)特定的規(guī)則進行刷新才行。如果要解決遇到的問題,需要分析網(wǎng)站的源代碼,所以就暫時嘗試其他的辦法。

  • 20220314

  • 分析問卷星的提單操作:(1)填完題目后;(2)需要點擊提交按鈕;(3)點擊彈出的智能驗證按鈕;(4)進行滑塊操作。

  • 點擊瀏覽器中已經(jīng)安裝好的油猴插件,選擇添加腳本
    [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-HMM8LTU7-1647271049306)(https://api.itxiaoye.top/uploads/imgs/article/20220314/35e4af2628255b7dea2f61154a51fd23.png)]

  • 輸入問卷星刷的自動化操作腳本。我的油猴腳本代碼,可以進行下載或者安裝使用 [ 腳本 ]
    [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-kLBE6hnL-1647271049310)(https://api.itxiaoye.top/uploads/imgs/article/20220314/f38e0d7e42a941beca6b20505a8e4c9d.png)]

  • 啟動剛安裝的油猴腳本,打開我對應(yīng)的問卷網(wǎng)址 [ 問卷 ],便能夠自動進行問卷刷單。當(dāng)前只是簡單做了一些單選題目,并且設(shè)置每個題目選項的概率,同時考慮到題目的關(guān)聯(lián)性。更多的邏輯操作、更多的其他類型題目可以舉一反三,修改油猴腳本進行完成(需要會JavaScript語言編程基礎(chǔ))。

  • 在刷的次數(shù)比較多了之后會出現(xiàn)如下報錯,這時候就是因為智能驗證沒有過關(guān)。經(jīng)過分析,智能驗證是會檢測用戶的點擊是為腳本點擊還是真實點擊(會在click操作的時候獲取對應(yīng)的瀏覽器數(shù)據(jù)判斷當(dāng)前是否真的有鼠標(biāo)點擊),這個問題通過油猴腳本暫時沒有解決方案。
    [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-5XNZwe7J-1647271049312)(https://api.itxiaoye.top/uploads/imgs/article/20220314/ec8a9cd2a2afd56eca9f56e7c2ebc062.png)]

  • 上邊遇到的智能驗證問題,我找到了一個比較好的解決方法,可以算是通過降維打擊進行解決。我們編寫的油猴腳本是跑著瀏覽器上的,它并不能解決瀏覽器本身限制的問題,但是瀏覽器是在電腦上邊的,所以可以通過電腦上邊入手。
    不賣關(guān)子了,就是通過類似按鍵精靈的方式,使用電腦的自動腳本進行鼠標(biāo)的操作,使得瀏覽器認為鼠標(biāo)有真實的動作事件。

  • 根據(jù)上邊提到的,我便使用 AutoHotkey [ 官方教程 ] 進行對應(yīng)的操作。
    在刷問卷的同時,我會啟動鼠標(biāo)定時移動一下并且點擊一下,這樣能確保瀏覽器在智能驗證的時候識別到鼠標(biāo)事件,判斷點擊有效。對應(yīng)的 AutoHotkey 代碼如下,需要先運行腳本,然后在啟動了油猴腳本刷單之后,按下 ctrl+j 啟動鼠標(biāo)定時事件(需要將鼠標(biāo)移動到旁邊空白的位置,避免誤點),在停止的時候,按下 ctrl+q 停止鼠標(biāo)定時事件。

    stop := false^q::stop := true^j::Loop{MouseGetPos, xpos, yposMouseClick, , %xpos%, %ypos%MouseMove, 0, %ypos%MouseMove, %xpos%, %ypos%Sleep , 3000}Until stop
  • 需要注意的一些問題:(1)使用同一個ip進行刷問卷,在刷了幾十上百個的時候可能會出現(xiàn)提交不成功的問題,這個可能是問卷星后臺限制了同一個ip的填單速度,我測試停止一小段時間后便能夠再次快樂刷起來;(2)使用f12獲取右鍵查看源碼,會導(dǎo)致刷問卷失敗的問題。

  • 四、解決方案

  • 在瀏覽器中安裝油猴插件,然后安裝對應(yīng)的自動刷問卷星的代碼 [ 腳本 ]
    [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-M9WHDxFx-1647271049314)(https://api.itxiaoye.top/uploads/imgs/article/20220314/f38e0d7e42a941beca6b20505a8e4c9d.png)]

  • 使用 AutoHotkey [ 官方教程 ] 解決提交問卷之前的智能驗證問題。
    對應(yīng)的 AutoHotkey 代碼如下,需要先運行腳本,然后在啟動了油猴腳本刷單之后,按下 ctrl+j 啟動鼠標(biāo)定時事件(需要將鼠標(biāo)移動到旁邊空白的位置,避免誤點),在停止的時候,按下 ctrl+q 停止鼠標(biāo)定時事件。

    stop := false^q::stop := true^j::Loop{MouseGetPos, xpos, yposMouseClick, , %xpos%, %ypos%MouseMove, 0, %ypos%MouseMove, %xpos%, %ypos%Sleep , 3000}Until stop
  • 啟動剛安裝的油猴腳本,打開我對應(yīng)的問卷網(wǎng)址 [ 問卷 ],便能夠自動進行問卷刷單。當(dāng)前只是簡單做了一些單選題目,更多的其他類型題目可以舉一反三,修改油猴腳本進行完成(需要會JavaScript語言編程基礎(chǔ))。

  • 需要注意的一些問題:(1)使用同一個ip進行刷問卷,在刷了幾十上百個的時候可能會出現(xiàn)提交不成功的問題,這個可能是問卷星后臺限制了同一個ip的填單速度,我測試停止一小段時間后便能夠再次快樂刷起來;(2)使用f12獲取右鍵查看源碼,會導(dǎo)致刷問卷失敗的問題。

  • 五、總結(jié)

    • 完成時間:2022-03-14 23:02
    • 出于需求和好奇,進行并完成了這一次自動化操作腳本的開發(fā)。這一個小探索,只是簡單完成了自動操作的流程,中間的詳細邏輯和特定的功能需求還需要小伙伴們自己根據(jù)需要進行油猴腳本的修改。
    • AutoHotkey 這個電腦的自動操作腳本也是我第一次使用,感覺還是挺有意思的!
    • 在探索的過程中,使用py腳本進行post數(shù)據(jù)刷問卷的方法還沒有完全走通,這個需要花些時間研究一下網(wǎng)頁邏輯代碼,感興趣的小伙伴們也可以一塊探討探討~

    總結(jié)

    以上是生活随笔為你收集整理的问卷星全自动填写脚本浅尝的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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