国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于華為商城的搶單工具python3.9的selenium webdriver使用及打包

這篇具有很好參考價值的文章主要介紹了基于華為商城的搶單工具python3.9的selenium webdriver使用及打包。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文基于華為商城的搶單工具,講解一下python3.9的selenium webdriver使用,網(wǎng)上也有相關(guān)的資料,但在自己動手做的過程中還是遇到了一些波折,想拿出來跟大家一起分享。開篇先放個圖:
webdriveragentrunner如何打包,華為,selenium,測試工具
webdriveragentrunner如何打包,華為,selenium,測試工具
webdriveragentrunner如何打包,華為,selenium,測試工具
主要從三個大方面說明:開發(fā)環(huán)境搭建、工程打包、過程中所遇問題整理
話不多說,從頭開捋:

一、開發(fā)環(huán)境搭建

1、 git代碼clone:
假設(shè)clone后的工程路徑為:D:\WorkSpace\MyPython\huawei_seckill,以下基于此路徑展開說明,當(dāng)前工程面向win10的64位(win7兼容處理后續(xù)有說明),代碼地址:
https://gitee.com/lykiao/huawei_seckill.git

2、 工程文件夾為外層的huawei_seckill,其中入口文件為【huawei_seckill.py】,實際主代碼文件為【huawei_seckill_module.py】,包了一層的原因是對主代碼進(jìn)行了加密用,后續(xù)會一一講解。

3、 創(chuàng)建虛擬環(huán)境:
Ide(PyCharm)的命令行或cmd,cd到工程文件夾,執(zhí)行命令python -m venv venv39,生成虛擬環(huán)境。
注:因為使用的python版本為3.9版,為了便于識別,所以起名為venv39(不強(qiáng)求,可隨意起)。強(qiáng)烈推薦使用虛擬環(huán)境,因為工程不同,考慮兼容性,各庫的使用版本就會不同,如果全部使用全局環(huán)境,切換工程時會遇到各種意想不到的問題。
如果創(chuàng)建成功,則會在工程文件夾下生成虛擬環(huán)境venv39:
webdriveragentrunner如何打包,華為,selenium,測試工具
4、 激活虛擬環(huán)境:
同步驟3,cd到工程文件夾,執(zhí)行命令.\venv39\Scripts\activate,行首顯示(venv39)則表示已成功激活虛擬環(huán)境,后續(xù)的所有操作都是在此虛擬環(huán)境下進(jìn)行的。
webdriveragentrunner如何打包,華為,selenium,測試工具
5、 在虛擬環(huán)境下安裝工程的依賴庫:
目前均已導(dǎo)入到【requirements.txt】中,執(zhí)行命令pip install -r requirements.txt進(jìn)行安裝即可。
webdriveragentrunner如何打包,華為,selenium,測試工具
注:如果工程中依賴庫有所變動,在虛擬環(huán)境下執(zhí)行命令pip freeze > requirements.txt可再次導(dǎo)出。

6、 瀏覽器驅(qū)動安裝:
谷歌Chrome瀏覽器驅(qū)動:
http://chromedriver.storage.googleapis.com/index.html?path=114.0.5735.90/
火狐瀏覽器驅(qū)動:
https://github.com/mozilla/geckodriver/releases/
其他瀏覽器參照以下:
https://blog.csdn.net/catch_dreamer/article/details/109359208
下載解壓后的exe【chromedriver.exe】放到虛擬環(huán)境中python.exe的同級目錄下:D:\WorkSpace\MyPython\ huawei_seckill\venv39\Scripts
放入后一定要關(guān)閉PyCharm,再重啟,否則直接運(yùn)行會找不到driver,火狐【geckodriver.exe】就曾報錯:WARNING: Exception trying to discover geckodriver version: error sending…
注意,以上為開發(fā)環(huán)境的處理方式,打包后火狐瀏覽器還是報錯:ERROR: Message: Unable to obtain driver for firefox using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location
直接將火狐驅(qū)動【geckodriver.exe】放到huawei_seckill.exe同級文件夾中即可,谷歌瀏覽器驅(qū)動不需要,但保險起見,也一起放進(jìn)來。后來發(fā)現(xiàn)沒有安裝火狐的機(jī)器這樣也會報錯。此處問題較多,可多試幾次。

7、 開發(fā)環(huán)境中啟動:
PyCharm中,右鍵入口文件,點選Run,或者點擊上方三角符號即可啟動:
webdriveragentrunner如何打包,華為,selenium,測試工具
注意:如果虛擬環(huán)境指定不正確,可通過以下方式調(diào)整
打開工程的配置:
webdriveragentrunner如何打包,華為,selenium,測試工具
檢查下拉中是否有本工程創(chuàng)建的venv39,如果有,直接選擇ok即可。我的目前就沒有,所以上圖報了一片紅。
webdriveragentrunner如何打包,華為,selenium,測試工具
沒有的情況,需要按以下方式添加:
webdriveragentrunner如何打包,華為,selenium,測試工具
webdriveragentrunner如何打包,華為,selenium,測試工具
上面步驟3我們已經(jīng)手動生成了虛擬環(huán)境,選擇Existing(存在),會自動指定到工程目錄下的venv39:
webdriveragentrunner如何打包,華為,selenium,測試工具
如果不存在,選擇New(新建),應(yīng)該類似于步驟3的手動創(chuàng)建動作,我沒試過,主要習(xí)慣了用命令行,之前PyCharm貌似也沒有這個功能吧,有興趣的朋友可以試一下。
點擊OK,返回上一頁面,可以看到已指定好虛擬環(huán)境,再點擊OK即可:
webdriveragentrunner如何打包,華為,selenium,測試工具
就會發(fā)現(xiàn)剛才的紅色都消失了。小插曲到此結(jié)束,回到剛才的啟動話題,發(fā)現(xiàn)也能正常啟動了。
webdriveragentrunner如何打包,華為,selenium,測試工具
如果啟動時報缺少文件的錯誤,請穩(wěn)步二的步驟6中查看。
webdriveragentrunner如何打包,華為,selenium,測試工具

二、工程打包

以上到運(yùn)行成功為止,說明開發(fā)環(huán)境已調(diào)試通過,接下來說一下打包。
打包也有很多方式,網(wǎng)上資料很多,復(fù)雜的沒嘗試過,孰好孰壞不能妄加評判,如有需要可自行去搜索看看,目前使用的是比較大眾的pyinstaller庫。
1、 此種方式有單文件打包和多文件打包兩種方式:
單文件打包:
在工程文件夾下執(zhí)行命令:pyinstaller --icon=huawei_seckill.ico --version-file file_version_info.txt --key password -F -w huawei_seckill.py
注:由于單文件打包后,啟動太慢,固使用了多文件打包方式。
多文件打包:
在工程文件夾下執(zhí)行命令:pyinstaller --icon=huawei_seckill.ico --version-file file_version_info.txt --key password -D -w huawei_seckill.py
注:兩種方式的命令只差在-F和-D上,password為打包時的加密密碼,貌似極容易破解,可不用。如果打包報錯,刪除build和dist文件夾后重新打幾次,直到成功為止。

關(guān)于加密設(shè)置,需要在工程文件夾中執(zhí)行命令:pip install pycrypto來安裝pycrypto庫,由于會報以下錯誤,就沒放到requirements.txt中一起安裝,下面是我解決錯誤的方式:
從【C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\MSVC\14.29.30133\include】復(fù)制【stdint.h】到
安裝時報錯路徑【C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt】下,并且修改該目錄下【inttypes.h】中的
【#include <stdint.h>】為【#include “stdint.h”】,然后重新進(jìn)行安裝即可。
另外,打包指定—key參數(shù)時還需要安裝:pip install tinyaes,已在requirements.txt中包含,無需手動安裝。指定的密碼在使用pyinstxtractor解壓后是可以看到的,形同虛設(shè),所以推薦用下面的pyd混淆方式加密。

2、 由于使用了ddddocr庫,如果打包后運(yùn)行報錯:onnxruntimeerror no_suchfile,可進(jìn)行如下處理
以上打包會在工程文件夾下生成huawei_seckill.spec文件,編輯器打開進(jìn)行以下編輯:
datas = [ ]改為:
datas = [
(‘./venv3/Lib/site-packages/onnxruntime/capi/onnxruntime_providers_shared.dll’,‘onnxruntime\capi’),(‘./venv3/Lib/site-packages/ddddocr/common.onnx’,‘ddddocr’),(‘./venv3/Lib/site-packages/ddddocr/common_old.onnx’,‘ddddocr’)
]
3、 如果打包后exe的icon圖標(biāo)不顯示,也需要對huawei_seckill.spec文件進(jìn)行編輯:
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)行以下添加以下代碼:
#// 添加exe圖標(biāo)顯示
a.datas += [(‘huawei_seckill.ico’, ‘huawei_seckill.ico’, ‘Data’)]
如圖:
webdriveragentrunner如何打包,華為,selenium,測試工具
4、 以上huawei_seckill.spec文件修改后,需要重新打包,將build和dist文件夾刪除,現(xiàn)在在工程文件夾下執(zhí)行以下打包命令即可:
pyinstaller huawei_seckill.spec

5、 預(yù)防反編譯處理:
以上為未進(jìn)行防止反編譯時的打包方式,如果對以上打包生成的exe進(jìn)行反編譯,比如使用以下的pyinstxtractor工程,會生成.pyc文件,再進(jìn)一步還原出py文件,源代碼可謂是一覽無余,有興趣的可以去試試:https://github.com/extremecoders-re/pyinstxtractor

為了盡量的防止代碼泄露,可使用Cython庫對代碼進(jìn)行pyd混淆加密,過程需要用到build_pyd.py文件,在工程文件夾中已添加。只需要在工程文件夾下執(zhí)行命令:
python build_pyd.py build_ext –inplace
會將要加密的文件生成相應(yīng)的pyd文件:
huawei_seckill_module.cp38-win_amd64.pyd => huawei_seckill_module.pyd
lock.cp38-win_amd64.pyd => lock.pyd
order_logger.cp38-win_amd64.pyd => order_logger.pyd
然后,按以上方式手動改名為右側(cè)的名字(同.py原文件名)。
至此,再回到步驟4中,重新執(zhí)行打包命令:pyinstaller huawei_seckill.spec即可。
在此說明一下,因為生成的pyd文件不能直接執(zhí)行,需要被調(diào)用,所以才會出現(xiàn)開篇說的將主代碼文件【huawei_seckill_module.py】剝離出來,用入口文件【huawei_seckill.py】調(diào)用(入口文件相對簡單,不加密也無所謂)。

還有一點一定要注意,因為py和pyd同時存在時,會優(yōu)先引入pyd文件,所以經(jīng)過以上混淆和改名后,打包使用的肯定是pyd文件,如果回頭再進(jìn)行開發(fā)調(diào)試時,一定不要忘記把pyd文件刪除,否則不管怎么改py文件都無法看到效果的,因為pyd文件被優(yōu)先執(zhí)行了,這對我一小白來說是血的教訓(xùn)!

6、 打包后整理:
在工程文件夾中,還有一個文件夾huaweiTool,因為使用的是多文件打包方式,從一堆文件里找到exe,還需要ini等各種文件,對用戶來說顯得太繁瑣,所以此文件夾主要是面向用戶使用的。當(dāng)然,開發(fā)環(huán)境運(yùn)行時也需要從此文件夾復(fù)制相應(yīng)的文件使用。
a)、開發(fā)運(yùn)行時:
將D:\WorkSpace\MyPython\huawei_seckill\huaweiTool\huawei_seckill中的文件復(fù)制到工程文件夾下(D:\WorkSpace\MyPython\huawei_seckill)
b)、打包運(yùn)行后運(yùn)行時:
將打包后D:\WorkSpace\MyPython\huawei_seckill\dist\huawei_seckill中的文件復(fù)制到D:\WorkSpace\MyPython\huawei_seckill\huaweiTool\huawei_seckill中,然后雙擊執(zhí)行D:\WorkSpace\MyPython\huawei_seckill\huaweiTool\addShotcut.bat文件,即可對所有快捷方式進(jìn)行更新,此后的操作只需要在huaweiTool文件夾中進(jìn)行。修改【config.ini】和【order.ini】文件后,點擊【huawei_seckill.exe】即可啟動了。
注:check_env.bat可能不需要,暫且無視??赡躻indows的defender會報病毒,可穩(wěn)步【addDefenderExclusion】文件夾中執(zhí)行相關(guān)bat,添加信任文件夾來解決。
webdriveragentrunner如何打包,華為,selenium,測試工具
webdriveragentrunner如何打包,華為,selenium,測試工具

三、過程中所遇問題整理

1、Pillow庫報錯:
使用時發(fā)現(xiàn)報錯:
File “D:\WorkSpace\MyPython\huawei_seckill\venv39\lib\site-packages\ddddocr_init_.py”, line 1614, in classification
image = image.resize((int(image.size[0] * (64 / image.size[1])), 64), Image.ANTIALIAS).convert(‘L’)
AttributeError: module ‘PIL.Image’ has no attribute ‘ANTIALIAS’
控制臺中pip list查看Pillow的版本為10.0.0,可能是最新版與ocr中的版本沖突,可修改ocr,也可降級Pillow,參照鏈接:https://blog.csdn.net/light2081/article/details/131517132
本工程已做降級處理,使用requirements.txt中的9.5.0即可

2、啟動成功,但chromedriver彈窗報錯:handshake failed; returned -1, SSL error code 1, net_error -200
添加options參數(shù),參照:
https://www.fyovo.com/6681.html
本工程代碼已添加。

3、打包后,chromedriver會顯示黑色彈窗,需要如下非表示處理:
修改【D:\WorkSpace\MyPython\huawei_seckill\venv39\Lib\site-packages\selenium\webdriver\common\service.py】
添加:from subprocess import CREATE_NO_WINDOW
webdriveragentrunner如何打包,華為,selenium,測試工具
找到:_start_process方法,修改【creationflags=self.creation_flags】為:creationflags=CREATE_NO_WINDOW,無creationflags時添加即可
webdriveragentrunner如何打包,華為,selenium,測試工具
webdriveragentrunner如何打包,華為,selenium,測試工具
注意,此項是對安裝庫的代碼進(jìn)行修改,所以本工程代碼中無法處理,需要自行手動修改后再打包。

4、一定不要忘了把瀏覽器驅(qū)動【chromedriver.exe、geckodriver.exe】放到【D:\WorkSpace\MyPython\ huawei_seckill \venv39\Scripts】中再打包,否則啟動報錯。

5、如果開發(fā)環(huán)境中運(yùn)行報win32api相關(guān)的錯誤,請將PyCharm重啟一次再運(yùn)行。

6、如果想同時兼容win7的64位,需要將python降至3.8.10版,此為兼容win7的最后一版python3(雖然還存在3.8.17,但已不提供installer文件了,只有源碼)。
附3.8.10版的下載地址:
https://www.python.org/downloads/release/python-3810/

7、win7中報onnxruntime庫相關(guān)的錯,目前使用的是1.16.0版,需要對其進(jìn)行手動降至1.14.0版即可解決:
參照方案:https://github.com/microsoft/onnxruntime/issues/16116
執(zhí)行命令:
pip uninstall onnxruntime
pip install onnxruntime==1.14.0

原創(chuàng)不易,您的關(guān)注和點贊就是我前進(jìn)的動力~文章來源地址http://www.zghlxwxcb.cn/news/detail-845832.html

到了這里,關(guān)于基于華為商城的搶單工具python3.9的selenium webdriver使用及打包的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python3爬蟲之 Selenium庫的使用

    今天在官網(wǎng)看了下Selenium庫,總結(jié)了下常用的方法,直接上代碼。(沈略環(huán)境搭建,網(wǎng)上多得是),新手建議去了解10分鐘再來看這里的代碼。 這里列舉一下常用的查找元素方法:其實find_element_by_xpath是萬能的。 單元素定位: find_element_by_name find_element_by_id find_element_by_xpath

    2024年02月11日
    瀏覽(27)
  • Python3+Selenium+Chrome實現(xiàn)自動填寫WPS表單

    Python3+Selenium+Chrome實現(xiàn)自動填寫WPS表單

    ??本文通過python3、第三方python庫Selenium和谷歌瀏覽器Chrome,完成WPS表單的自動填寫。 ??python3的安裝:略,網(wǎng)上都有教程。 ??Selenium的安裝:在命令行輸入 pip3 install selenium 并回車即可完成安裝,如果不成功,查找網(wǎng)上教程。 ??Chrome的安裝:略,網(wǎng)上都有教程。 ??

    2024年02月01日
    瀏覽(22)
  • Python3.6+selenium實現(xiàn)操作Frame中的頁面元素

    Python3.6+selenium實現(xiàn)操作Frame中的頁面元素

    有時網(wǎng)頁中會嵌套一個或者多個Frame,此時我們直接去找嵌套在Frame里面的元素會拋出異常,所以在操作的時候我們需要將頁面焦點切換到Frame里面,下面我們就以一個實例演示一下! 首先先創(chuàng)建三個html文件,文件代碼如下: 1)frameset.html 2)frame_left.html ??3)frame_right.html

    2024年01月19日
    瀏覽(24)
  • 【記錄】Python3|Selenium4 極速上手入門(Windows)

    【記錄】Python3|Selenium4 極速上手入門(Windows)

    環(huán)境:Windows 版本:python3,selenium 4.11.2 寫這個是方便自己重裝電腦時重新裝 Selenium,懶得每次都重新找鏈接。 Chrome 和 Edge 或其他瀏覽器任選其一。 首先,終端運(yùn)行: 官網(wǎng)下載Chrome:https://www.google.cn/intl/zh-CN/chrome/ 安裝好Chrome之后查看Chrome版本:chrome://settings/help 如果Chrome版

    2024年02月07日
    瀏覽(302)
  • 【小5聊】Python3 使用selenium模塊實現(xiàn)簡單爬蟲系列一

    【小5聊】Python3 使用selenium模塊實現(xiàn)簡單爬蟲系列一

    第一次聽說Python還是在工作的時候,還是一位女生在用,當(dāng)時她說可以用來處理excel文檔,特別是一些統(tǒng)計分析。第二次讓我真正進(jìn)入python世界,還是在一次C站舉辦的大賽上。聊聊你是因為什么機(jī)緣巧合進(jìn)入到python圈的呢?不妨留言說說 本期主要是聊聊,我接觸到的selenium模

    2024年02月06日
    瀏覽(31)
  • Python3 Selenium4 chromedriver Pycharm閃退的問題

    Python3版本:3.11.5 Pycharm版本:2023.2.1 Chrome版本:117.0.5938.150(正式版本)? 在使用最新版的Selenium4版本時,chromedriver可以驅(qū)動Chrome但是閃退,Selenium目前最新版本是4.13.0(Python版) 可能原因: 1.chromedriver版本和Chrome版本不一致導(dǎo)致,chromedriver版本是能下載到的最新版:117.0.5

    2024年02月06日
    瀏覽(101)
  • 華為機(jī)考入門python3--(0)測試題1-句子平均重量

    華為機(jī)考入門python3--(0)測試題1-句子平均重量

    分類:字符串 知識點: 獲取輸入 input().strip().split(\\\" \\\") 拼接列表?\\\" \\\".join(list) 輸出指定位數(shù)的浮點數(shù) print(\\\"%.2f\\\" %?value) len() 函數(shù)對于很多內(nèi)置的數(shù)據(jù)類型都適用,它返回對象的元素個數(shù)或長度。 題目來自【華為招聘模擬考試】 注意,不要使用round,有bug by: 軟件工程小施同學(xué)

    2024年01月22日
    瀏覽(69)
  • 013-Python3.11.8+selenium4.18.1+Web元素定位大法

    013-Python3.11.8+selenium4.18.1+Web元素定位大法

    2024現(xiàn)烤現(xiàn)賣熱乎的自動化測試之《元素定位大法》最新版本教程 環(huán)境配置: ????????Python版本:Python3.11.8 ????????Selenium版本:Selenium4.18.1 ????????Firfox版本:123.0.1(64位)

    2024年03月20日
    瀏覽(95)
  • 自動化測試之八大元素定位方式(python3.10+selenium4)

    自動化測試之八大元素定位方式(python3.10+selenium4)

    元素的定位是自動化測試核心。要操作一個對象,首先要識別定位或找到這個對象。為了實現(xiàn)網(wǎng)頁整體布局,我們先要知道,一個元素,是如何定位到頁面上的某個位置的,這就是元素定位。 系統(tǒng)環(huán)境 Windows 11 ?? python3.10.5 ?? selenium 4.8.0 ?? 注意:以下每種定位方式均有一

    2024年02月03日
    瀏覽(87)
  • 華為機(jī)考入門python3--(0)模擬題2-vowel元音字母翻譯

    華為機(jī)考入門python3--(0)模擬題2-vowel元音字母翻譯

    分類:字符串 知識點: 字符串轉(zhuǎn)list,每個字符成為list中的一個元素????list(string) 字符串變大小寫????str.upper(), str.lower() 題目來自【華為招聘模擬考試】 by 軟件工程小施同學(xué)

    2024年01月22日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包