iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
Python

時空序列分析-關鍵籌碼分析系列 第 15

含金量滿滿的文章? Step(3/4):關鍵分點的籌碼資訊,ChromeDriver你幹嘛!

  • 分享至 

  • xImage
  •  

回顧[爬蟲很好玩,獲取籌碼資訊有解? 動態網頁的爬蟲方式!]這篇文章,(https://ithelp.ithome.com.tw/articles/10343993)

說到要使用python的套件工具是 Selenium
目標對象富邦證券主力進出舊版網頁,

但是難道要台股全部的股票都要爬嗎? 每一天也都爬嗎?
當然不是,在[決定欄位! 天下沒有白吃的午餐,股價、籌碼資料的其他來源?](決定欄位! 天下沒有白吃的午餐,股價、籌碼資料的其他來源?)這篇文章,我決定了欄位,

所以籌碼資料收集的目標標的應該是某一檔個股
籌碼資料收集的時間範圍也要明確一點,不要太長(不然會跑太久)。

既然這樣,我們就從前陣子的事件來抓標的,
因為 NVIDIA 再次爆紅,黃仁勳資執行長來台,
ComputerX台北國際電腦展之前,帶起的AI熱潮,尤其是機器人大軍。
那時候領軍的是 2359 所羅門,開始了連續多日的漲停板,在短短不到一個月內,起漲點到高點漲幅至少有60%。
時間也拉回到起漲附近的交易日,設定在5/13~5/16

如果單純在主力進出切換到2359的頁面,
會看見這樣的圖和買賣超個股資訊,僅提供排序後的前15名買賣超券商

#(會發現網址把股票代號和資料區間都明確寫在裡面)
https://fubon-ebrokerdj.fbs.com.tw/z/zc/zco/zco.djhtm?a=2359&e=2024-5-13&f=2024-5-16

(如下圖)
https://ithelp.ithome.com.tw/upload/images/20240813/20168322QLTErnIKo9.png

可是這樣只有前15名的資訊就不夠完整,這時透過上面的單選按鈕切換到旁邊的單一
(在html元素裡面,單選按鈕稱為 radio )

#(仔細看會發現,網址也在裡面變成了不一樣的內容)
https://fubon-ebrokerdj.fbs.com.tw/z/zc/zco/zco0/zco0.djhtm?A=2359&BHID=1030&b=0031003000330043&C=1&D=2024-5-13&E=2024-5-16&ver=V3

透過下拉選單( select Tag ),這邊直接跳過上面的犇亞證券(牛牛牛證券)、口袋證券,
直接從土銀這間券商開始,會發現這間券商有好幾個分點
這邊挑選土銀-白河 (如下圖)
https://ithelp.ithome.com.tw/upload/images/20240813/20168322TtZRkPPYyC.png

設定好目標後,就開始來建置爬蟲需要的東西吧!

Selenium進行爬蟲,需要webdriver這個輔助工具

使用 Selenium 進行爬蟲要用到的 webdriver ,在不同的瀏覽器會有不同的 driver 。
例如: Chrome、Edge、Firefox、Safari、IE,
這邊有 Selenium 官方提供的支援瀏覽器清單

我比較常用 Chrome ,這邊就用 ChromeDriver
透過這個下載點,可以看到很多版本的ChromeDriver,
挑選 符合自己Chrome當前版本的
如果自己的版本太新,可以選最接近的,假如chrome版本127.0.xxxx,用版本126的ChromeDriver也可以

我的chrome版本是64位元的127.0.6533.100 (如下圖)
https://ithelp.ithome.com.tw/upload/images/20240813/20168322uj8KIoqyFc.png

於是選擇這個最符合的對應版本(如下圖)
https://ithelp.ithome.com.tw/upload/images/20240813/201683221Vyj0qpwiG.png

# 下載網址,開個新分頁輸入之後下載下來
https://storage.googleapis.com/chrome-for-testing-public/127.0.6533.99/win64/chromedriver-win64.zip

下載下來,會得到一個壓縮檔chromedriver-win64.zip
解壓縮後,保留chromedriver.exe 這個檔案,其他的是說明文件。
然後,就可以開始寫程式測試了!!

chromedriver.exe和程式檔放在同一個資料夾下,接著開始用Python執行

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os
import time


# 開啟瀏覽器視窗(Chrome)
# 方法一:執行前需開啟chromedriver.exe且與執行檔在同一個工作目錄 要放到系統PATH阿!!
#driver = webdriver.Chrome()
# 方法二:或是直接指定exe檔案路徑
#driver = webdriver.Chrome(“桌面\chromedriver”)
#driver = webdriver.Chrome(executable_path="E:/時空資料分析/關鍵分點籌碼分析_實測/chromedriver", options=options)                          

current_path = os.path.abspath(os.getcwd())

# The path of ChromeDriver
chromeDriver = current_path + r'/chromedriver.exe'

driver = webdriver.Chrome()

# 更改網址來前往不同網頁
driver.get("http://www.google.com") 

# 停止動作,睡眠一秒鐘
time.sleep(1) #sleep for 1 sec

# 智能等待,只要前面條件成立,然後關閉瀏覽器
driver.implicitly_wait(2000)  
driver.quit()

https://ithelp.ithome.com.tw/upload/images/20240813/20168322F0kJ0leBhg.png
如果執行正常的話,會看見 ChromeDriver 從旁邊開了一個 chrome 瀏覽器分頁,然後過一下子又自己關掉。

上面這邊測試和Debug了好幾次,一開始以為是系統路徑沒有讀到,
把程式檔和ChromeDriver的資料夾加入系統環境變數後,又重新開機,試了好幾次。

後來發現要放到C槽,它才讀得到,也不用設路徑...

一整個大無語,平時為了怕C槽太容易滿,東西都先下載到D槽或E槽,結果搞了很久。
直接把程式檔和ChromeDriver丟到C槽的Download 。

今天稍微看了一下這個的網頁原始碼,明天把需要的元素爬出來

https://fubon-ebrokerdj.fbs.com.tw/z/zc/zco/zco0/zco0.djhtm?A=2359&BHID=1030&b=0031003000330043&C=1&D=2024-5-13&E=2024-5-16&ver=V3

參考文章&資料來源:

  1. [網路爬蟲]運用selenium開啟chrome瀏覽器
  2. Downloads | ChromeDriver - Chrome for Developers
  3. ChromeDriver Downloads
  4. How to find a chrome driver for my chrome version? - stackoverflow
  5. 動態網頁爬蟲第一道鎖 — Selenium教學:如何使用Webdriver、send_keys(附Python 程式碼)
  6. Selenium Python Tutorial (with Example)

每日記錄:
加權指數:收在21895.17點,下跌132.08點。
CPI合乎預期,通膨的軟著陸可能性越來越高了,
這波反彈也彈了3千點,稍微回檔了一下,之後波動應該又會趨於平常,牛市還在! (?

被這個ChromeDriver拖到了發文時間,學到了,下次就不會浪費太多時間QQ
/images/emoticon/emoticon03.gif


上一篇
含金量滿滿的文章? Step(2/4): 關鍵分點籌碼爬蟲,券商分點地圖視覺化
下一篇
含金量滿滿的文章? Step(4/4):關鍵分點的籌碼資訊,你也可以自己拿!
系列文
時空序列分析-關鍵籌碼分析31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言