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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

JAVA、Python、selenium、问卷星自动脚本

發布時間:2024/3/24 python 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA、Python、selenium、问卷星自动脚本 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目地址

https://gitee.com/Hardy1/questionnaire-star-script

前期準備

  • 配置jdk
  • 安裝python
  • 下載安裝mitmproxy
  • 代碼實現

    • 項目中service包中的auto_service是主運行邏輯代碼,其他包中的代碼一般無需更改

    • auto_service中的代碼從注釋”答卷邏輯start“到”答卷邏輯end“是對應問卷的答題邏輯處理

      其中int 的i1,i2,i3之類的數據是為了確定選擇哪個選項

      boolean類型的數據是為了對多選題中的每個選項進行隨機選取,true為選擇,false為不選擇,當多選題所有選項都是false也就是不選擇時,指定選擇一個選項或者隨機選擇一個(防止出現都不選的情況而不符合答題要求),我代碼中指定選擇最后一個選項。

      if (b20_1==false && b20_2==false && b20_3==false && b20_4==false && b20_5==false){//選擇第五個選項driver.findElement(By.xpath("//*[@id=\"div20\"]/div[2]/div[5]/span")).click();}
    • 對于xpath中引用變量的代碼,說明這個地方的變量可以決定具體要選擇的選項(邏輯代碼中的int、Boolean類型的代碼都是隨即出來的,所以腳本跑出來的數據具有隨機性,無法應用于真正的數據分析中。)

    • tools包中的seleniumAPI類中,需要自定義chrome driver的本地路徑,建議直接放在C盤根目錄下,就不用動我的默認位置了。不過也可以自定義,我默認的驅動路徑是C:/chromedriver.exe(注意,每個系統中的路徑分隔符不同,在java中應當寫作:C:\\chromedriver.exe)

    項目配置

  • 打開”問卷星自動腳本“項目,設置好maven、jdk等配置

  • 打開mitmproxy安裝路徑,在…/mitmproxy/bin/中新建一個python文件,名字可以隨便起,我這邊用的名字是properties.py,內如如下

    TARGET_URL = 'https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html' INJECT_TEXT = 'Object.defineProperties(navigator,{webdriver:{get:() => false}});' #js執行文件def response(flow):if flow.request.url.startswith(TARGET_URL):flow.response.text = INJECT_TEXT + flow.response.textprint('注入成功')if 'um.js' in flow.request.url or '115.js' in flow.request.url:# 屏蔽selenium檢測flow.response.text = flow.response.text + INJECT_TEXT

    把上面所有代碼復制到properties.py文件中,并保存

  • 在mitmproxy/bin/目錄下terminal執行一次mitmdump后關閉terminal

  • 在C:/User/Username/.mitmproxy文件中雙擊”mitmproxy-ca.p12“開始導入證書,選擇默認下一步就好,但是記得在證書儲存的時候不要選擇默認的選項,要將證書儲存在受信任的根證書頒發機構中

  • 導入證書完成后,在…/mitmproxy/bin/路徑下打開terminal,輸入命令:mitmdump -s porperties.py啟動mitmproxy

  • 打開”問卷星自動腳本“項目中的start包中的mainrun類中設置好定時任務(不太清楚spring boot中怎么直接執行一個方法)并運行,就可以開始自動跑問卷了。

  • 問題處理

    常見問題

  • 腳本跑一段時間后,統計數據數量和腳本跑的次數不同。

    原因:問卷星服務器可能屏蔽了異常的提交
    解決方案:建議放慢速度,使用IP代理軟件(一般注冊都會送免費時長)更改IP地址,防止拉黑IP(IP異常后過幾十分鐘還是可以繼續提交的,不過只用本地IP的話會大大限制正常提交次數),建議出現滑動驗證碼時暫停程序并切換IP,雖然我已經將滑動驗證碼自動處理。

  • 腳本打開網頁時chrome提示鏈接不安全界面。

    原因:mitmproxy未安裝證書

    解決方案:根據教程或者網上自己尋找教程(關鍵字:”mitmproxy證書“)安裝證書。

  • 腳本打開網頁時無法打開網頁,提示未連接到互聯網。

    原因:沒啟動mitmdump
    解決方案:在mitmproxy安裝目錄下的bin目錄中打開terminal執行”mitmdum -s properties.py“命令

  • 提交問卷時顯示異常

    原因:當前IP短時間內過多提交問卷,提交頻繁

    解決方案:使用IP代理軟件更換IP或者暫停程序過0.5-1小時重試。

  • 其他問題

    有問題可以加我qq1315364596(不常用)/微信1315364596,能幫得上的會幫幫你

    總結

    以上是生活随笔為你收集整理的JAVA、Python、selenium、问卷星自动脚本的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。