python_selenium_driver

【爬蟲教學】如何讓 Selenium 多線池執行時 driver 不會重複開啟

本篇主要紀錄使用 Selenium 搭配 Multi-threading Pool (多執行緒池/多線程池) 遇到 web driver 會重複開啟和關閉的問題,導致效率大幅下降,解決方法是使用 threading.local 將 driver 變數存 local 來判斷是否有需要重複開啟 使用 threading.local() 利用 threading.local() 的方法將 driver 變數存在 thread 線程內,當每次 thread 線程重新執行時會先 getattr 看看有無 driver 沒有的話就會重新開啟。

當執行噴錯時,可以在 except 內把 driver 關閉,並輸入 setattr(self. […]

閱讀全文
multithreadpool

【Python教學】淺談 Multi-threading Pool 使用方法

先來看一下執行 Multi-threading Pool (多執行緒池/多線程池) 後,可以將每一個頁面原本需要等待 15 s 才能載入完畢並爬取的頁面,降至 3.9 秒 (10 threading pool) ~ 2.28 秒(25 threading pool),但是多線程池的使用要非常留意 tread-safe 問題 ,不小心就會像上面圖片一樣,想像中大家是各自完成任務,但實際上是亂七八糟的執行任務。 Multi-threading Pool 實現方法一 首先install threadpool,這是個最後更新時間在2015年的套件目前已經沒有人維護了,但使用起來相當簡單和方便,目前python3.7版本使用上沒有問題。 [crayon-6391b90daf9a3747194 […]

閱讀全文
python_selenium_error

【爬蟲筆記】Python Selenium Webdriver異常問題集

在開發 Python Selenium 爬蟲遇到了不少坑,花了很多時間找問題和解決方法,所以記錄一下,希望遇到相同問題的人有幫助 Python Selenium Webdriver 異常記錄 發生 selenium.common.exceptions.TimeoutException 問題: 可以在 driver 這邊設定 timeout 超時時間

 發生 ConnectionResetError: [Errno 104] Connection reset by peer 問題:

發生 […]

閱讀全文
logging

【學習筆記】 Python 如何寫logging教學+yaml配置

首先建立一份文件檔命名為config.yaml,所有logger的設定都會在這份文檔裡面,統一在這份文件檔方便於之後不用各別修改py檔內的設定!可以先複製這份,接下來會詳細解說,理解後再修改成自己需要的設置~ 再來建立一個python檔,首先看到class log裡面是在讀取config.yaml的配置,def logging1內的return logging.getLogger(‘my_module1’),my_module1這段是對應到config.yaml內的my_module1配置;而def logging2內的return logging.getLogger(‘my_module2’),這段是對應到config.yaml內的my_mo […]

閱讀全文
Data Analytics 數據分析

[Data Analytics] 數據分析 教學文章

連載中,歡迎交流,如文章內容有誤請不吝指正! 如何利用公開數據做競品分析? 爬取競品公開資料,建立數據儀表板掌握情報,來提高自己銷售業績: – 產業 Top 10 的總營收– 商品上架優先策略– 商品訂價策略 – 競品對手 每日/每週/每月 銷售狀況 Looker Studio 電商數據儀表板 整理出電商 Google Analytics 最常看的 8 個面向數據,包含產品分析、新舊客區隔、網頁標題、搜尋字詞和客戶輪廓,再搭配利用 Looker Studio 資訊圖表方式呈現,Dashboard 模板這邊領取。 如何利用 Google 商家進行分析和優化 利用 Python 取得台北市 89 間 Google 商家桌遊店資料,期望從中找出如何降 […]

閱讀全文