樺哥隨筆空間

煩人的驗證碼破解,ddddocr 超好用Python 套件工具使用方式

零、前言 寫爬蟲最討厭就是遇到各種驗種碼的機制,往往最難處理的都不是資料本身,而是如何繞過層層防護網,在傳統因應做法上,除了透過一般OCR工具自行辨識,可能就是透過像是 2Captcha 這類線上「人肉驗證碼破解」的方式來處理,但這終究還是讓人覺得有點沒效率。 最近在網路上找到一個蠻厲害的驗證碼辨識工具—ddddocr,可以直接透過深度學習預訓練好的模型進行辨識,並且具備一定的通用性,以...

擺脫 Selenium 手動更新 瀏覽器 driver.exe,朝全自動化更進一步吧!

零、前言 在使用 Selenium 進行瀏覽器自動化作業的過程中,許多人一開始會遇到一個常見的問題:每次使用前都必須手動下載對應版本的 driver.exe,才能啟動瀏覽器並進行自動化測試。 這個過程不僅繁瑣,還容易因為驅動版本與瀏覽器版本不匹配而導致錯誤。 因此,如何自動化管理 Selenium 驅動的更新,成為了使用者們非常關心的議題。在這篇文章中,我們將探討如何透過不同版本的 S...

Python-(補充)如何善用 ChatGPT 加速學習程式語言

零、前言 比起學程式語言本身,這篇我更想來探討「如何加速學習Python的效率」這件事情。 一門程式語言其實包含的範圍非常廣,特別是 Python,因為可以應用的地方很多,例如:系統開發、網站、爬蟲、應用程式…,所以這門語言本身包含的工具就是屬於多面向、非常龐雜的。 如果我們在剛接觸這門程式語言,就馬上跳入一個一個環節學習,最常見的情況就是會覺得雲裡霧裡、越學越混亂,因此在學習上,從「...

Python-(補充)學習資源包

零、前言 程式語言是學不完的,這條路上一定會遇到許許多多問題,所以重點在於:我們需要建立一個雖時可以使用的「資料庫」,也就是,當遇到問題時知道可以去哪裡找解答、查手冊,這些東西雖然與程式語言本身無關,但卻是實務開發時常常會使用到的救命稻草! 以下會整理自己常用的一些工具庫,給讀者參考。 一、自學資源整理 W3School Python Tutorial: ...

Python-(補充)基本Debug—程式寫錯沒關係!簡單小技巧教你找問題

零、前言 新手最容易感到煩躁的,大概就是程式好不容易寫完,啟動後卻跑出一堆紅字錯誤,但又不知道該怎麼辦、從何改起。實務上這在日常的開發中是非常正常的事情,業餘跟專業程式設計師,面對這件事情時,差異其實只是,專業的程式設計師可以比較有效率知道: 主要錯誤出現在哪邊 錯誤的類型是什麼 錯誤發生的情況 一、錯誤訊息判讀 當你在撰寫程式碼並執行時,如果遇到錯誤,Python ...

Python-(補充)大括號、中括號、小括號傻傻分不清楚

零、前言 對一般 Python 初學者,很容易分不清楚小括號、中括號、大括號的使用時機,不知道甚麼時候要使用哪個,這篇文章就用簡單的分類來幫助讀者了解,每個括號的用途吧! 一、各種括號使用原則 這邊先簡單條列出原則,下面會再透過例子細講,讀者可以參考對照。 ()小括號 表示 Function 時使用 用來表示資料結構中的「tuple」 ...

Python-12-try…except 錯誤捕捉—接住錯誤,不讓程式崩潰

零、前言 相信學到這邊,讀者在寫程式上,已經有遇過許多次的程式執行錯誤經驗了,這是學習程式的日常。 而在實務開發上,這類的錯誤,雖然難免會發生,但如果沒有預先考慮到我們的程式碼中,很容易會發生程式因此而中斷導致整個流程停擺的問題。 舉個生活化的例子: 今天你命令小明去幫你買早餐,小明按照著你的指令出門,穿過大街小巷,當走到早餐店門口時,突然發現,「早!餐!店!沒!開!」,這是預...

Python-11-檔案讀寫—讓程式不止執行,還能幫你做紀錄

零、前言 檔案讀寫在程式設計中是不可少的學習單元,因為程式在執行時,所有資料都只會站存於記憶體中,當程式結束後,資料也會跟著消失,除非我們透過檔案讀寫的方式將需要存檔的資料寫進檔案裡,這樣下次程式執行時才可以記得以前的資料。 因此,掌握檔案讀寫的技巧,就等於讓程式有了「長期記憶」的功能! 一、寫入檔案 寫入檔案是檔案 I/O 中的基本操作之一,Python 提供了非常簡單的方法來完成...

Python-10-Function—輪子只要造一次就好

零、前言 一個 Function 就是把一組指令們,打包成一個功能,讓我們可以在程式中呼叫使用。例如做早餐,可能包含了「煮咖啡、煎蛋、擺餐盤、烤土司」等一系列動作,而我們就把這一系列動作,用一個「做早餐」來代替,此時「做早餐」就類似一個 Function,這樣的好處就是:我跟任何人溝通做早餐時,大家都知道它背後代表的一系列動作,我不用還得一次一次重複把該做哪些動作講清楚,會節省很多力氣! ...

Python-9-迴圈(Loop)(進階)—迴圈再迴圈以及進階應用示範

零、前言 迴圈的使用其實有很多樣,有時候迴圈中還需要迴圈、有時則是每個迴圈都有個別需要判斷的情境導致不一定都會執行完,這些比較複雜的狀況,都是現實開發程式很容易遇到的事情。 以下將用三個例子直接示範迴圈比較進階但常出現的使用方式: 雙重迴圈 break 指令 continue 指令 一、雙重迴圈 例子:9x9 乘法表 我們來做一個 9x9 乘法表,這是我們每天在學...