[问题] Internetexplorer.document.innertext

楼主: Metal5566 (咩陀56)   2016-09-11 14:32:58
(若是和其他不同软件互动之问题 请记得一并填写)
软件:
版本: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
作者: waiter337 (给开司一罐苏格登)   2016-09-11 21:29:00
一种方式 想办法抓左边第三个数字开始 通常左边两个空白 (看不见的)如果 你只是要查资料 那原始档应该没必要修改到时候用serch 查内部文字 应该就好了测试是否有隐藏空白的方式贴上纯文字档后,在上方输入列,的第一个字左边,按三下左然后打个1,接着按右看几下才跳过去,那中间就是藏了几个空白或者丢档上来 等晚点在测试补充 那个空白 并不等于空白,所以,你也可以直接复制整个储存格作参照
楼主: Metal5566 (咩陀56)   2016-09-12 07:30:00
看了上面的做法不是很懂http://imgur.com/a/oGFYj 这是有问题的CODE和结果网页是 http://www.oddsportal.com/然后进去赛事的页面 有电视图示的就是SCRIPT所在http://imgur.com/a/vNo3q 如图我有问到是说 innertext 是把其下标签的innertext也算所以TABLE标签或什么的里面会有SCRIPT标签的INNERTEXT想知道怎么避免不要抓到那段SCRIPT
作者: soyoso (我是耀宗)   2016-09-12 08:25:00
http://imgur.com/a/TYtKB 类似这样测试上,上面无出现回文连结内所出现的资料http://imgur.com/a/8awxN以execwb的部分复制所见的网页内容(文字、表格、超连结...),而非抓取原始码的资料
楼主: Metal5566 (咩陀56)   2016-09-12 14:14:00
http://imgur.com/a/fXV5L 错误的是.document.body.inn......那行 弄了很久不知道为什么会这样 元素不给改吗?也都有引用MS INTERNETCONTROL 和ms html library
作者: soyoso (我是耀宗)   2016-09-12 14:55:00
https://youtu.be/MCzc3s2fKY4 测试上无出现回文的错误也无引用回文的二个项目 http://imgur.com/a/Q8OPC执行未出现错误424,另一处出现http://imgur.com/a/QNq63
楼主: Metal5566 (咩陀56)   2016-09-12 17:19:00
好的 再次感谢 我再找第三台电脑试试
作者: waiter337 (给开司一罐苏格登)   2016-09-13 02:34:00
作者: soyoso (我是耀宗)   2016-09-13 08:56:00
原本测试ie版本为ie8是可行的,到ie11时则会出现错误424http://imgur.com/a/9dRih 改为这样测试于ie11则无出现错误,引用项目方面请勾选
楼主: Metal5566 (咩陀56)   2016-09-13 09:35:00
谢谢你 ok了 没想到是ie的关系 想知道为什么要这样设变量呢?
作者: soyoso (我是耀宗)   2016-09-13 10:08:00
因引用项目,所以将变量指定明确的型态
作者: waiter337 (给开司一罐苏格登)   2016-09-13 13:16:00
已跪

Links booklink

Contact Us: admin [ a t ] ucptt.com