标题:vba立即窗口 监视窗口 字符串长度限制 不完整 完美解决办法

-------------------------------------------------------------------------------------------------------------------------------

时间:2016/1/14 1:34:55

-------------------------------------------------------------------------------------------------------------------------------

内容:

今天被一个问题困扰了几个小时 一直到晚上11点才回家

就是用vba抓取网页代码的时候 发现抓到的代码和直接打开网页的不一样
也即是说网站会根据抓取的对象 展示不同的结果
我主要就是抓取百度的搜索结果页面 提取其中的广告信息
使用的是excel的vba 用的是xml。http方法
最后发现抓取seo信息很容易 没碰到什么问题 里面的代码也很规律
但是sem信息就很诡异

首先如果 是通过https 加密访问的源代码里面是没有有用的信息的
其次 用chrome和用ie打开百度网站 源代码是有不同的。。 这点不死不得其解
然后用ie打开后  百度广告信息的css样子加密了 是随机字符串
一起都有特征字符串 现在麻烦很多 要涉及一点算法
这不算麻烦的 
最最麻烦的是调试 
原来调试用的是f8 加断电加复制监视器里面的字符串来做
现在高级很多 会使用立即窗口了
只用输入?url
安个回车 就可以看到url里面的变量内容
但是但是

最最难的 也是困扰我很久的就是
vba的立即窗口  字符串长度有限制
最多只有200行或者1023个字符
于是我通过百度啊excel之家找了很久都没找到  最后很绝望了
就通过google 加上vpn来搜索中文  发现还是没有 就开始搜索英文
搜索了很久 有点眉目 最后替换了几个关键词 才找到
解决方法是
写一个函数
 Function PutDataInClipBoard(strText)

    Dim objData As New MSForms.DataObject

    objData.SetText strText
    objData.PutInClipboard

End Function

然后在主程序中
使用
PutDataInClipBoard(t)
其中t就是你要查看的很长的变量
就可以复制到粘贴板中了

然后你就可以复制到编辑器里面看了
这个出处再http://stackoverflow.com/questions/7037603/check-full-value-of-a-long-string-in-the-vb6-ide
可见学好英文和使用好google真的很重要
http://excel-macro.tutorialhorizon.com/vba-excel-putting-text-in-the-windows-clipboard/
国内也有些方法 比如写在一个文件里 对比看下来还是放在剪切板里最方便


今天被一个问题困扰了几个小时 一直到晚上11点才回家
就是用vba抓取网页代码的时候 发现抓到的代码和直接打开网页的不一样
也即是说网站会根据抓取的对象 展示不同的结果
我主要就是抓取百度的搜索结果页面 提取其中的广告信息
使用的是excel的vba 用的是xml。http方法
最后发现抓取seo信息很容易 没碰到什么问题 里面的代码也很规律
但是sem信息就很诡异

首先如果 是通过https 加密访问的源代码里面是没有有用的信息的
其次 用chrome和用ie打开百度网站 源代码是有不同的。。 这点不死不得其解
然后用ie打开后  百度广告信息的css样子加密了 是随机字符串
一起都有特征字符串 现在麻烦很多 要涉及一点算法
这不算麻烦的 
最最麻烦的是调试 
原来调试用的是f8 加断电加复制监视器里面的字符串来做
现在高级很多 会使用立即窗口了
只用输入?url
安个回车 就可以看到url里面的变量内容
但是但是

最最难的 也是困扰我很久的就是
vba的立即窗口  字符串长度有限制
最多只有200行或者1023个字符
于是我通过百度啊excel之家找了很久都没找到  最后很绝望了
就通过google 加上vpn来搜索中文  发现还是没有 就开始搜索英文
搜索了很久 有点眉目 最后替换了几个关键词 才找到
解决方法是
写一个函数
 Function PutDataInClipBoard(strText)

    Dim objData As New MSForms.DataObject

    objData.SetText strText
    objData.PutInClipboard

End Function

然后在主程序中
使用
PutDataInClipBoard(t)
其中t就是你要查看的很长的变量
就可以复制到粘贴板中了

然后你就可以复制到编辑器里面看了
这个出处再http://stackoverflow.com/questions/7037603/check-full-value-of-a-long-string-in-the-vb6-ide
可见学好英文和使用好google真的很重要
http://excel-macro.tutorialhorizon.com/vba-excel-putting-text-in-the-windows-clipboard/
国内也有些方法 比如写在一个文件里 对比看下来还是放在剪切板里最方便