2024年5月28日 星期二

分享用Python的beautifulsoup4來抓取大樂透表格資料

分享用Python的beautifulsoup4來抓取大樂透表格資料

相關課程:ChatGPT輔助EXCEL VBA網路爬蟲與圖表繪製班
https://ojt.wda.gov.tw/ClassSearch/Detail?OCID=157308&plantype=1

這篇分享文,主要可以和 [分享QueryTables物件改用IE物件來抓取大樂透表格資料]比較,

一個是用EXCEL VBA的IE物件,一個是用Python的beautifulsoup4來擷取資料,

兩相比對,沒有各有所長,但若是存為EXCEL,那當然直接用VBA是最直接

若是便利性和後續程式擴充的支援,當然還是Python較有優勢。

 今天主要是學習利用beautifulsoup的find與find_all方法,以解析HTML的標籤與class,

find是取一個或第一個標籤資料,取得的資料型態為文字,

而find_all方法,是取得多個標籤資料,資料型態為串列型態。

練習下載大樂特歷史資料,先找到table標籤,

再取得tr與td標籤,很快地就可以取得所有資料,

其他的就是去除換行與空白,可以用replace方法即可解決問題。

完整教學

範例一:大樂特歷史資料下載

網址:https://www.lotto-8.com/listltobigbbk.asp?indexpage=1&orderby=new

**可先藉由 html-online分析

https://html-online.com/editor/

完整程式碼:

import requests

from bs4 import BeautifulSoup

url = "https://www.lotto-8.com/listltobigbbk.asp?indexpage=1&orderby=new"

html = requests.get(url)

html.encoding="utf-8"

sp = BeautifulSoup(html.text, "html.parser")

tbl = sp.find("table","auto-style4")

list_tr = tbl.find_all("tr")

for i in range(len(list_tr)):

    list_td=list_tr[i].find_all("td")

    print(list_td[0].text+","+list_td[1].text.replace("\xa0","")+","+list_td[2].text)

**日期改為標準格式 年/月/日

list_td[i].text[0:4]+"/"+list_td[i].text[4:9]

將下載資料存成EXCEL

import requests

from openpyxl import Workbook

wb = Workbook()

sheet = wb.active

from bs4 import BeautifulSoup

url = "https://www.lotto-8.com/listltobigbbk.asp?indexpage=1&orderby=new"

html = requests.get(url)

html.encoding="utf-8"

sp = BeautifulSoup(html.text, "html.parser")

tbl=sp.find("table","auto-style4")

# print(tbl.text)

list_tr=tbl.find_all("tr")

for i in range(0,len(list_tr)):

    list_td=list_tr[i].find_all("td")

    S=list_td[0].text+","+list_td[1].text.replace("\xa0","")+","+list_td[2].text

    list1=S.split(",")

    print(list1)

    sheet.append(list1

wb.save("E:\\大樂透.xlsx")


開課資訊公布在FB或是部落格:

https://www.facebook.com/scuexcelvba/


教學論壇(之後課程會放論壇上課學員請自行加入):

https://groups.google.com/g/tcfst_python_2024


課程簡介:

單元01_建置Python開發環境與程式測試

單元02_基本語法與結構控制件

單元03_迴圈資料結構與自訂函數

單元04_串列、字典與檔案與資料庫處理

單元05-1_ChatGPT+Excel自動化程式設計基礎

單元05-2_ChatGPT+Python自動化程式設計基礎

單元05-3_ChatGPT協助撰寫Excel與Python程式

單元05-4_開放資料處理CSV和JSON資料處理

單元05-5_Python網頁資料擷取基礎

單元05-6_網頁資料擷取台彩與股市資料

單元06_使用Pandas與處理_Excel_試算表

單元07_用Python操作Excel儲存格、欄列與工作表

單元08_用Python操作Excel樞紐分析表與折線圖表


吳老師  113/5/24

懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524


其他相關學習:


ChatGPT,EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝環境

2024年5月26日 星期日

分享QueryTables物件改用IE物件來抓取大樂透表格資料

分享QueryTables物件改用IE物件來抓取大樂透表格資料

相關課程:ChatGPT輔助EXCEL VBA網路爬蟲與圖表繪製班
https://ojt.wda.gov.tw/ClassSearch/Detail?OCID=157308&plantype=1

為什麼不直接用之前講過的QueryTables物件來抓取表格資料,

而需要改用IE物件來抓取表格資料呢?

主要至少有幾個地方QueryTables物件,

1.如果表格內的標籤不是td,而是有th。

2.目前QueryTables物件只支援Big5的網頁編碼,但目前主流慢慢是utf-8編碼。

但若是改為IE物件的限制就是只能在Windows平台,

MAC除非有安裝Edge瀏覽器,否則會有問題。

學生常問,IE不是已經升級為Edge了嗎?事實上,

用IE物件依舊相容於Edge瀏覽器,所以呼叫IE物件依舊沒問題。

所以,本周課程主要先練習將大樂透網頁改為IE物件擷取資料,

再改為擷取交通部的統計查詢網,

交通部的統計查詢網的表格標籤除了有td標籤,

還有th標籤,不能用QueryTables物件來抓取表格資料,

必須改用IE物件來擷取資料。


完成畫面:


完整的教學影片:


吳老師excel函數Vba與Python大數據教學:

教學論壇:
台師大試算表進階應用與程式設計2021

課程理念:
1.以循序漸進的方式, 透過詳細的說明和實用的50個Excel VBA範例,
帶領您輕鬆進入 Excel VBA 設計的領域, 並逐步了解整個 VBA 的架構與輪廓,進而學習 VBA 變數、常數、函式及邏輯的觀念, 即使沒有任何程式設計基礎,也能自己親手撰寫 VBA 程序來提昇工作效率, 晉身職場 Excel 高手!
2.進而解說EXCEL與資料庫的結合,甚至將EXCEL當成資料庫來使用,
結合函數、VBA等更深入的功能,讓資料處理和分析的應用更上層樓。

五大類函數與自訂函數
一、文字和資料函數
二、邏輯函數
三、日期和時間函數
四、數學和三角函數
五、檢視和參照函數

上課用書:
Excel VBA一點都不難:一鍵搞定所有報表
超圖解 Excel VBA 基礎講座

吳老師  113/5/24

吳老師excel函數Vba與Python大數據教學:

教學論壇:
台師大試算表進階應用與程式設計2021

懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524

其他相關學習:

2024年3月4日 星期一

Chat GPT+EXCEL函數+VBA+Python完整教學影音雲端分享申請說明(2024/3/4更新)

Chat GPT+EXCEL函數+VBA+Python完整教學影音雲端分享申請說明(2024/3/4更新)

相關課程:ChatGPT輔助EXCEL VBA網路爬蟲與圖表繪製班
https://ojt.wda.gov.tw/ClassSearch/Detail?OCID=157308&plantype=1

應網路上許多學員要求整理最近Chat GPT AI輔助產生EXCEL高階函數、樞紐分析表、樞紐分析圖、錄製巨集、VBA設計、資料庫、網路爬蟲與Python教學課程,

非同步遠距學習一次三小時左右上課錄影,就存在一個資料夾,
所以只要一次上完三小時,並練習完畢,就等於一周課程,
提供完整講義和練習檔,講義可以是情況列印,按照順序,逐一學習,效果顯著,
線上學習的優點是可以反覆重複觀看教學,尤其是比較困難程式解說,
,並提供雲端白板資料,可以讓學員複製程式碼,確保程式的正確性,
上課若有疑問,也可以藉由EMAILFBYOUTUBE下方留言等方式提問,
只要問題明確,幾乎會在第一時間回應。。

整理的目的,主要的目的時希望學習我的課的學員都能學會,
提升上課的品質,學員只需抽空重複聽講,並不斷練習,再將所學反覆用在工作上,成效良好,除了效率提高外,自己的專業技能信心提高,工作自然勝任無虞,
對未來的職涯規劃也更有希望。


**提供雲端資料夾影音,亦可在手機平板中觀看影片,
授權時間為三個月,亦可自行備份,不過注意智慧權使用。

申請與價格表:
2024版:gg.gg/DVD_apply2024
2021版:gg.gg/DVD_apply2021
2018-2020版:gg.gg/DVD_apply

填寫以下後,先不要匯款給我,我會回信給您,等候同意後,
再去匯款,避免彼此不必要的麻煩。 

合輯:
EXCEL VBA入門+進階合輯2024(光碟9-12) NT$4500元
EXCEL VBA入門+進階+PYTHON合輯2024(光碟9-14) NT$6500元

EXCEL VBA入門+進階合輯2020(光碟1-4) NT$2500元
PYTHON合輯2020(光碟5-8) NT$2500元
EXCEL VBA入門+進階+PYTHON合輯2020(光碟1-8) NT$4000元

單光碟:
光碟09_EXCEL進階應用與VBA設計2023(台師大)[課程內容] NT$1500元
光碟10_EXCEL高階函數與VBA設計2023(勞動部)[課程內容] NT$1500元
光碟11_EXCEL VBA網路爬蟲與圖表繪製班2023(勞動部)[課程內容] NT$2000元
光碟12_EXCEL VBA與資料庫雲端設計(進階)(東吳119)[課程內容] NT$2000元
光碟13_ChatGPT+Python+EXCEL程式設計2023(自強30HR)[課程內容] NT$2000元
光碟14_ChatGPT+Python+EXCEL程式設計2024(自強12HR)[課程內容] NT$1500元

光碟01_EXCEL高階函數與樞紐分析基礎班(全球人壽內訓) [課程內容] NT$1500元
光碟02_EXCEL VBA與資料庫雲端設計(入門)(東吳推廣部114) [課程內容] NT$1500元
光碟03_EXCEL VBA與資料庫雲端設計(進階)(東吳推廣部110與112) [課程內容] NT$1500元
光碟04_EXCEL VBA金融數據之網路爬蟲實作(勞工大學) [課程內容] NT$2000元
光碟05_Python程式入門202101(自強SPYDER4版) [課程內容] NT$1500元
光碟06_Python基礎程式語言證照應用班(SPYDER4版) [課程內容] NT$1500元
光碟07_[初階]從VBA的自動化到PYTHON網路爬蟲應用 (自強) [課程內容] NT$1500元
光碟08_[進階]自強網頁資料擷取、分析與資料視覺化能力 (自強) [課程內容] NT$1500元

吳老師  113/03/4