[爆卦]Excel VBA抓 取 網頁資料是什麼?優點缺點精華區懶人包

為什麼這篇Excel VBA抓 取 網頁資料鄉民發文收入到精華區:因為在Excel VBA抓 取 網頁資料這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者endoxans (艾德尚)看板Office標題[算表] asp網頁表格無法以excel讀取時間...


軟體:excel

版本:2016

用excel資料匯入的方式抓取asp的資料
https://www7.vghtpe.gov.tw/drugsh/asp/result.asp
好像只能抓出外層
內部資料都無法顯示

想請問版上前輩是否有辦法解決
(或者需要以爬蟲程式才有辦法

感謝解答~


--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.26.109.8
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1547560200.A.C02.html
soyoso: 如不行的話,就以巨集協助試試 01/15 21:59
soyoso: google excel vba ie automation asp|dynamic web 01/15 21:59
shengvia: 請問該網頁要輸入什麼查的到資料 01/15 22:17
shengvia:           才 01/15 22:18
soyoso: 原文網址是查詢後結果的網址,可按左側重新查詢,回到查詢 01/15 22:30
soyoso: 頁 01/15 22:30
endoxans: 目前先一個一個查,來日研究VBA and python~XD 01/15 22:39
waiter337: google selenium chrome vba 01/15 22:52
waiter337: 百度那邊也有資料 01/15 22:53
waiter337: 還有chrome商店 selenium IDE 01/15 22:54
waiter337: 你要抓內部 試試看上面這個 01/15 22:55
waiter337: Katalon 也可以試試 但這個我沒試過 01/15 22:57
waiter337: 實作上可以參考水管 01/15 22:58
waiter337: 但水管上的寫法是比較久一點的版本 01/15 22:59
waiter337: 要這樣 01/15 23:00
waiter337: Dim driver As selenium.ChromeDriver 01/15 23:01
waiter337: Sub openWEBchrome() 01/15 23:01
waiter337: Set driver = CreateObject("Selenium.ChromeDriver") 01/15 23:01
waiter337: url = "https://www.google.com.tw" 要加https:// 01/15 23:02
waiter337: driver.Get url 01/15 23:02
waiter337: driver.Wait 1000 01/15 23:03
waiter337: driver.Quit 01/15 23:03
waiter337: End Sub 01/15 23:03
waiter337: 要安裝軟體 安裝chromedrive 執行start chrome 01/15 23:05
waiter337: 設定引用項目 01/15 23:05
soyoso: 這個查詢以ie automation來看的話 01/15 23:06
soyoso: 查詢網頁來看的話,藥品名稱name為DN,國際條碼為"IBC" 01/15 23:07
soyoso: 健保碼"NHIC",UD碼"UDN",可以document.all、all.item 01/15 23:07
soyoso: 或documnet.getelementsbyname將value帶入儲存格的值或字 01/15 23:07
soyoso: 串 01/15 23:07
soyoso: 開始搜尋為"btnDO81E0",按下為click 01/15 23:07
soyoso: 要複製表格的話body.innerhtml指定getelementsbytagname為 01/15 23:07
soyoso: table,再以execwb來全選複製於儲存格 01/15 23:07
soyoso: 以ie的話則不用安裝其他軟體 01/15 23:08
waiter337: 藥品名稱 name=DN 或 xpath=//input[@name='DN'] 01/15 23:11
waiter337: 國際條碼 name=IBC 或 xpath=//tr[3]/td[2]/input 01/15 23:12
waiter337: 健保碼 name=NHIC 或 xpath=//tr[4]/td[2]/input 01/15 23:12
waiter337: UD碼 name=UDN 或 xpath=//tr[5]/td[2]/input 01/15 23:13
waiter337: 開始搜尋 name=btnDO81E0 01/15 23:13
waiter337: 或xpath=//input[@name='btnDO81E0'] 01/15 23:13
waiter337: 重新輸入 name=btnReSet 01/15 23:14
waiter337: 或xpath=//input[@name='btnReSet'] 01/15 23:14
waiter337: 彈出警告確定 xpath=//input[@name='btnDO81E0'] 01/15 23:15
waiter337: 抱歉 彈出警告確定 不是這個元素 01/15 23:16
soyoso: 如不抓表格只要表格內的資料的話,split分割outerhtml再抓 01/15 23:18
soyoso: 出 01/15 23:18
waiter337: 彈出警告大概只能靠迴圈搜索新元素物件 沒彈出 sedkey 01/15 23:19
waiter337: 按下確定來跳開 或者drive.Qiit關閉重開來迴避 01/15 23:19
waiter337: sendkey 01/15 23:20
waiter337: 好像selenium或其他爬蟲有支援python錄製自動寫巨集 01/15 23:22
waiter337: 的功能 01/15 23:22
waiter337: 就是你錄製好你的動作,他會直接給你程式碼 01/15 23:23
waiter337: 然後你再丟到python裡面就能跑了,水管上看有沒有人教 01/15 23:23
soyoso: 以彈出警告,測試可以execScript "window.alert = 01/15 23:32
soyoso: function() {}" 阻止彈出 01/15 23:33
waiter337: 感謝 原來有這招 01/15 23:34
endoxans: 感謝神人們,小弟明天就來練練看 01/15 23:38

你可能也想看看

搜尋相關網站