好久没有上csdn了,最近工作还是非常忙,对不住XDJM们了
最近一直在编写一款电影管家程序,其中有个功能就是:
用户输入一个关键字(一般是电影名),然后程序就自动到某网站(保密,免得被河蟹
)采集所需的数据,其实就是用代码去下载网页源码,然后要么正则,要么直接字符串数组解析。
现在最最难的地方就是:这个电影网站是Ajax构架的,网页源码用常规方法直接获取的话,根本得不到完整的源码或者能得到处理起来也繁琐(Webbrowser控件),动态加载的部分还在娘胎里呢
注:
一般的得网页源码常规方法:
1.Inet控件(得不到完整源码)
2.Webbrowser控件(可以得到,但是处理繁琐,老是判断不好是否完全加载)
3.Winsock控件(得不到完整源码)
4.XmlHtpp组件(得不到完整源码)
5.API直接下载远程网页(一样得不到完整源码)
6....
好了,废话不多说了,那怎么样既能得到完整我源码,又处理起来非常方便呢?
我在网上也找了好久好久了,百度、谷歌...都没能找到有效的解决方案,今天突然直接灵感一现,想到了一种目前算非常完美的解决方法。既然Webbrowser控件能加载完整的源码,那我自然就想到了咱们每天在用的IE浏览器了(我现在用的是谷歌浏览器Chrome
)
我们的IE和Webbrowser有着相当紧密的联系,具体多紧密那就要问问微软了,有木有?
用com对象动态创建技术,即可在VB程序中创建一个IE,然后访问需要的网址,等待加载完毕,然后就可以十分方便地得到完整的源码,是不是很诱人啊?呵呵...
现在给出核心源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Function GetFullHtml(vURL As String ) As String
Dim ie As Object
Dim element As Object
Set ie = CreateObject( "InternetExplorer.Application" )
With ie
.Visible = False
.navigate vURL
Do Until .Readystate = 4
DoEvents
Loop
GetFullHtml = .Document.body.innerhtml
End With
Set ie = Nothing
End Function
|
呵呵,怎么样?以上简短的代码几乎可以解决所有网页源码的下载难题!最重要的是:它可以突破Ajax!
好了,诚接板砖中...
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。