摘要:最后在谷歌上找到一篇相關文章,大意是說這個是無解的,可能是系統安全的問題,對于這個解釋我還是比較認可的,所以在上就不會提示。
背景
最近在使用selenium進行自動文件下載時,突然出現了一個報錯:
下載進行不下去了。
思路經過各種谷歌、百度,均告訴我在要增加params,關閉瀏覽器安全選項,配置如下:
chromeOptions = webdriver.ChromeOptions() prefs = {"profile.default_content_settings.popups": 0, "download.default_directory": path, "download.prompt_for_download": False, # "download.directory_upgrade": "true", "safebrowsing.enabled": True} chromeOptions.add_experimental_option("prefs", prefs)
事實證明,可能以前的版本是可行的,現在的真心不行。
上面配置重點是"safebrowsing.enabled": True。在MacOS的環境下,哪怕不配也是沒有問題的,Windows就不行了。
最后在谷歌上找到一篇相關文章,大意是說這個是無解的,可能是windows系統安全的問題,
對于這個解釋我還是比較認可的,所以在mac上就不會提示。
Let’s start frankly: you can’t disable this feature. You can merely tweak the download settings in order to avoid it.https://windowsreport.com/typ...
那么問題來了,既然這樣,有什么曲線救國的辦法呢?
當chromedriver彈出這個提示的時候,其實文件已經下載完成,如下圖:
我們只需要將文件名修改為正確的名字和后綴即可(比如test.txt),直接無視警告提醒。思路如下:
找到最新下載的文件:通過對下載目錄的文件按照創建時間排序,找到最新的
判斷是否該文件是否已下載完成:通過判斷時間間隔前后該文件是否有大小的變化
結論根據上面思路,實現的關鍵代碼如下:
def sort_file(): global path dir_lists = os.listdir(path) dir_lists.sort(key=lambda fn: os.path.getmtime(os.path.join(path, fn))) return dir_lists[-1] def changeName(path, oldname, newname): old_path = os.path.join(path, oldname) new_path = os.path.join(path, newname + ".txt") if os.path.exists(old_path): if os.path.exists(new_path): os.remove(new_path) os.rename(old_path, new_path) print ("rename done!" + newname) else: print ("no file found!") def download(): ... temp_filename = sort_file() if u"未確認" in temp_filename: temp_filesize_old = os.path.getsize(os.path.join(path, temp_filename)) while True: time.sleep(1) temp_filesize_new = os.path.getsize(os.path.join(path, temp_filename)) if temp_filesize_old == temp_filesize_new: changeName(path, temp_filename, ip) return else: temp_filesize_old = temp_filesize_new else: print(u"下載失敗")
需要注意的是,在文件重命名的時候,先檢查下文件是否已經存在,先刪除,在創建。
以上。
如果有更好的思路,歡迎分享。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43401.html
Perplexica是一個開源的人工智能搜索工具,也可以說是一款人工智能搜索引擎,它深入互聯網以找到答案。受Perplexity AI啟發,它是一個開源選擇,不僅可以搜索網絡,還能理解您的問題。它使用先進的機器學習算法,如相似性搜索和嵌入式技術,以精細化結果,并提供附有來源的清晰答案。利用SearxNG保持最新和完全開源,Perplexica確保您始終獲取最新的信息,而不會損害您的隱私。特點本地L...
摘要:部署地域分布客戶在業務部署區域的選擇上也有不同,從客戶業務部署地域分布來看,主要集中在國內的北京和上海,客戶通常會選擇購買業務部署區域的,也有客戶采用多地域部署以提高業務的可用性,總體來看客戶的需求集中在防御攻擊防攻擊以及滿足合規需求。2021年UWAF累積為各個行業的客戶提供了1117個域名的高質量訪問服務,并提供安全防護,有效的保護了客戶的數據信息與資產安全。2021年Web安全形勢依然...
檢查內容是否用了ChatGPT,準確率高達99.9%!OpenAI又左右互搏上了,給AI生成的文本打水印,高達99.9%準確率抓「AI槍手」作弊代寫。其能夠精準識別出論文或研究報告是否由ChatGPT撰寫,甚至能追溯其使用的具體時間點。它能專門用來檢測是否用ChatGPT水了論文/作業。早在2022年11月(ChatGPT發布同月)就已經提出想法了。但是!這么好用的東西,卻被內部雪藏了2年,現在都...
小編這篇文章,就給大家傳授一招技術,python+selenium實現掃碼免密登錄,第一步是掃碼登錄,獲取cookies,然后保存到本地,為后面的免密登錄做準備,那么具體操作步驟是什么呢?請各位讀者繼續往下看。 一、需求描述 web自動化測試/python爬蟲往往會遇到掃碼登錄的情況,不是所有的網站都支持用戶密碼登錄,遇到這種掃碼登錄的情況會阻礙我們自動化測試/爬蟲的進行,所有為了可以...
小編寫這篇文章的一個主要目的,主要是來給大家做一個解答,解答的內容是Python+Selenium,具體的一個內容解釋是什么呢?比如,我們可以實現Geoserver批量發布Mongo矢量數據,具體的一個內容,下面就給大家詳細解答下。 首先,聲明一下,這里我完成的腳步屬于半自動化的,我戲稱它為有監督的半自動化腳本。具體原因后面會詳細說明。 一、安裝Selenium和ChromeDriver ...
閱讀 3077·2023-04-26 00:53
閱讀 3522·2021-11-19 09:58
閱讀 1693·2021-09-29 09:35
閱讀 3279·2021-09-28 09:46
閱讀 3852·2021-09-22 15:38
閱讀 2692·2019-08-30 15:55
閱讀 3006·2019-08-23 14:10
閱讀 3822·2019-08-22 18:17