[問題] Internetexplorer.document.innertext

看板Office作者 (咩陀56)時間9年前 (2016/09/11 14:33), 9年前編輯推噓6(6036)
留言42則, 3人參與, 最新討論串1/1
(若是和其他不同軟體互動之問題 請記得一併填寫) 軟體: 版本:excel office 2010 有用excel在網路抓取資料的需求,在網路上找的了這段code,但是把所有標籤抓下來之後在innertext 儲存格內會有script 另外有找到也是別人的檔案,code大同小異但他的innertext內就不會有script 網頁相關的知識比較薄弱,想請問一下為什麼會這樣,要怎麼解決 謝謝 作者:黄晨 链接:https://www.zhihu.com/question/20460385/answer/71447219 来源:知乎 著作权归作者所有,转载请联系作者获得授权。 Sub getPageInfo() With CreateObject("internetexplorer.application") .Visible = True .Navigate [URL] While .ReadyState <> 4 Or .Busy DoEvents Wend Set dmt = .Document For i = 0 To dmt.all.Length - 1 Set htMent = dmt.all(i) With ActiveSheet .Cells(i + 2, "A") = htMent.tagName .Cells(i + 2, "B") = TypeName(htMent) .Cells(i + 2, "C") = htMent.ID .Cells(i + 2, "D") = htMent.Name .Cells(i + 2, "E") = htMent.Value .Cells(i + 2, "F") = htMent.Text .Cells(i + 2, "G") = htMent.innerText End With Next i Set r = Nothing .Quit End With MsgBox "获取页面信息成功!" End Sub -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.51.169.144 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1473575581.A.359.htmlMetal5566:轉錄至看板 Visual_Basic 09/11 14:35

09/11 21:29, , 1F
一種方式 想辦法抓左邊第三個數字開始 通常左邊兩個空
09/11 21:29, 1F

09/11 21:29, , 2F
白 (看不見的)
09/11 21:29, 2F

09/11 21:29, , 3F
如果 你只是要查資料 那原始檔應該沒必要修改
09/11 21:29, 3F

09/11 21:29, , 4F
到時候用serch 查內部文字 應該就好了
09/11 21:29, 4F

09/11 21:30, , 5F
測試是否有隱藏空白的方式
09/11 21:30, 5F

09/11 21:32, , 6F
貼上純文字檔後,在上方輸入列,的第一個字左邊,按三
09/11 21:32, 6F

09/11 21:32, , 7F
下左然後打個1,接著按右看幾下才跳過去,那中間就是
09/11 21:32, 7F

09/11 21:32, , 8F
藏了幾個空白
09/11 21:32, 8F

09/11 21:33, , 9F
或者丟檔上來 等晚點在測試
09/11 21:33, 9F

09/11 21:35, , 10F
補充 那個空白 並不等於空白,所以,你也可以直接複製
09/11 21:35, 10F

09/11 21:35, , 11F
整個儲存格作參照
09/11 21:35, 11F

09/12 07:30, , 12F
看了上面的做法不是很懂
09/12 07:30, 12F

09/12 07:30, , 13F
http://imgur.com/a/oGFYj 這是有問題的CODE和結果
09/12 07:30, 13F

09/12 07:36, , 14F
09/12 07:36, 14F

09/12 07:37, , 15F
然後進去賽事的頁面 有電視圖示的就是SCRIPT所在
09/12 07:37, 15F

09/12 07:38, , 16F
09/12 07:38, 16F

09/12 07:39, , 17F
我有問到是說 innertext 是把其下標籤的innertext也算
09/12 07:39, 17F

09/12 07:40, , 18F
所以TABLE標籤或甚麼的裡面會有SCRIPT標籤的INNERTEXT
09/12 07:40, 18F

09/12 07:40, , 19F
想知道怎麼避免不要抓到那段SCRIPT
09/12 07:40, 19F

09/12 08:25, , 20F
09/12 08:25, 20F
soyoso: 謝謝你,算是成功了 想請問為什麼把.document.body.innerHTML 改成 .document.getElementById("tournamenttable").outerHTML 那些script就抓不到了呢 再來為甚麼可以直接用ExecWB 17, 0 和12,0 直接全選複製呢? 最後我的表格抓出來和你的差別是在我要的地方上面還有其他東西,如圖 http://imgur.com/a/oBYqx 請問要怎麼處理呢 *目前用的網址(有小電視圖標,就是那段討厭的SCRIPT): http://www.oddsportal.com/tennis/japan/wta-tokyo/ 謝謝你的幫忙!

09/12 11:17, , 21F
測試上,上面無出現回文連結內所出現的資料
09/12 11:17, 21F

09/12 11:17, , 22F
09/12 11:17, 22F

09/12 11:31, , 23F
以execwb的部分複製所見的網頁內容(文字、表格、超連結...
09/12 11:31, 23F

09/12 11:34, , 24F
),而非抓取原始碼的資料
09/12 11:34, 24F

09/12 14:14, , 25F
http://imgur.com/a/fXV5L 錯誤的是.document.body.inn
09/12 14:14, 25F

09/12 14:15, , 26F
......那行 弄了很久不知道為甚麼會這樣 元素不給改嗎?
09/12 14:15, 26F

09/12 14:37, , 27F
也都有引用MS INTERNETCONTROL 和ms html library
09/12 14:37, 27F

09/12 14:55, , 28F
測試上無出現回文的錯誤
09/12 14:55, 28F

09/12 14:56, , 29F
也無引用回文的二個項目 http://imgur.com/a/Q8OPC
09/12 14:56, 29F
非常謝謝 SOYOSO 花了這麼多時間幫忙確認 用了兩台電腦試(excel2010,2013)試 一樣都是錯誤424:此處需要物件 希望版上前輩能幫忙看看 https://pan.baidu.com/s/1kVi5mgn 只是要確認裡面的網址是有上面我說明的那段SCRIPT的網頁 謝謝大家 麻煩了 ※ 編輯: Metal5566 (59.115.113.160), 09/12/2016 16:21:33

09/12 16:50, , 30F
執行未出現錯誤424,另一處出現http://imgur.com/a/QNq63
09/12 16:50, 30F

09/12 17:19, , 31F
好的 再次感謝 我再找第三台電腦試試
09/12 17:19, 31F

09/13 02:34, , 32F
同樓上,我也卡在424
09/13 02:34, 32F


09/13 02:45, , 34F
研究中= =
09/13 02:45, 34F


09/13 08:56, , 36F
原本測試ie版本為ie8是可行的,到ie11時則會出現錯誤424
09/13 08:56, 36F

09/13 08:58, , 37F
http://imgur.com/a/9dRih 改為這樣測試於ie11則無出現錯
09/13 08:58, 37F

09/13 08:59, , 38F
誤,引用項目方面請勾選
09/13 08:59, 38F

09/13 09:35, , 39F
謝謝你 ok了 沒想到是ie的關係 想知道為什麼要這樣設
09/13 09:35, 39F

09/13 09:35, , 40F
變數呢?
09/13 09:35, 40F

09/13 10:08, , 41F
因引用項目,所以將變數指定明確的型態
09/13 10:08, 41F

09/13 13:16, , 42F
已跪
09/13 13:16, 42F
文章代碼(AID): #1NrFgTDP (Office)
文章代碼(AID): #1NrFgTDP (Office)