分享

迄今为止最完美的VB网页采集方案(附核心代码)

 宇哥小屋 2019-01-18
           好久没有上csdn了,最近工作还是非常忙,对不住XDJM们了
最近一直在编写一款电影管家程序,其中有个功能就是:
用户输入一个关键字(一般是电影名),然后程序就自动到某网站(保密,免得被河蟹)采集所需的数据,其实就是用代码去下载网页源码,然后要么正则,要么直接字符串数组解析。
现在最最难的地方就是:这个电影网站是Ajax构架的,网页源码用常规方法直接获取的话,根本得不到完整的源码或者能得到处理起来也繁琐(Webbrowser控件),动态加载的部分还在娘胎里呢
注:
一般的得网页源码常规方法:
1.Inet控件(得不到完整源码)
2.Webbrowser控件(可以得到,但是处理繁琐,老是判断不好是否完全加载)
3.Winsock控件(得不到完整源码)
4.XmlHtpp组件(得不到完整源码)
5.API直接下载远程网页(一样得不到完整源码)
6....

好了,废话不多说了,那怎么样既能得到完整我源码,又处理起来非常方便呢?
我在网上也找了好久好久了,百度、谷歌...都没能找到有效的解决方案,今天突然直接灵感一现,想到了一种目前算非常完美的解决方法。既然Webbrowser控件能加载完整的源码,那我自然就想到了咱们每天在用的IE浏览器了(我现在用的是谷歌浏览器Chrome
我们的IE和Webbrowser有着相当紧密的联系,具体多紧密那就要问问微软了,有木有?
用com对象动态创建技术,即可在VB程序中创建一个IE,然后访问需要的网址,等待加载完毕,然后就可以十分方便地得到完整的源码,是不是很诱人啊?呵呵...
现在给出核心源码:
Visual Basic code?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Function GetFullHtml(vURL As StringAs 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!
好了,诚接板砖中...

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多