VBA XMLHTTP 获取网页信息数据不全
目标:每天向下一行叠加添加网站SEO数据
方法:采用VBA MSXML2.XMLHTTP.3.0
遇到的难题:但是在第一步获取网页信息上就出了问题,表现为获取网页信息不全
详细:
看了各位大神的代码,自己编了一段,获取站长工具chinaz的网站SEO数据,和百度SITE网站收录数据
但是获取到的responseText
CHINAZ信息不全(收录首页信息等没有)
BAIDU只能截取前面的一部分代码,这是不是和百度分包发送有关,那应该怎么解决?
CHINAZ
原网页:

获取出来responseText直接复制成HTM文件后是这样的(缺少信息):

BAIDU
原网页:

获取出来responseText直接复制成HTM文件后是这样的

最后是VBA代码:

希望大神能帮我解决一下chinaz获取信息不全,BAIDU只能获取部分信息的问题
求一份高可用、高健壮,有注释的简介代码
四种网页获取方法都试过没用
然后QueryTables.Add方法可以获取到baidu的所有信息,但是china该丢失还是丢失
附上QueryTables.Add的录制宏代码:
但是如果用QueryTables肯定很麻烦,因为Destination是Range类型,还是必要参数
到时候提取收录之后还要清空单元格信息
另外如果是想知道百度首页是不是第一,这个判断貌似也比较复杂。
希望大神解决以上几个问题,真心感谢了!
方法:采用VBA MSXML2.XMLHTTP.3.0
遇到的难题:但是在第一步获取网页信息上就出了问题,表现为获取网页信息不全
详细:
看了各位大神的代码,自己编了一段,获取站长工具chinaz的网站SEO数据,和百度SITE网站收录数据
但是获取到的responseText
CHINAZ信息不全(收录首页信息等没有)
BAIDU只能截取前面的一部分代码,这是不是和百度分包发送有关,那应该怎么解决?
CHINAZ
原网页:

获取出来responseText直接复制成HTM文件后是这样的(缺少信息):

BAIDU
原网页:

获取出来responseText直接复制成HTM文件后是这样的

最后是VBA代码:
Sub getSingleSeoData() '获取网页数据
'获取网页数据-chinaz
Dim HTTPREQ As Object
Set HTTPREQ = CreateObject("MSXML2.XMLHTTP.3.0")
HTTPREQ.Open "GET", "http://seo.chinaz.com/?q=bbs.csdn.net", False
HTTPREQ.Send
Do Until HTTPREQ.ReadyState = 4
DoEvents
Loop
Cells(1, 1).Value = HTTPREQ.responseText
'获取网页数据-baidu
HTTPREQ.Open "GET", "http://www.baidu.com/s?wd=site%3Abbs.csdn.net", False
HTTPREQ.Send
Cells(1, 2).Value = HTTPREQ.responseText
Set HTTPREQ = Nothing
End Sub
希望大神能帮我解决一下chinaz获取信息不全,BAIDU只能获取部分信息的问题
求一份高可用、高健壮,有注释的简介代码
四种网页获取方法都试过没用
然后QueryTables.Add方法可以获取到baidu的所有信息,但是china该丢失还是丢失
附上QueryTables.Add的录制宏代码:
Sub 宏1()
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://www.baidu.com/s?wd=site%3Axadsyy.com&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&rsv_sug3=8&rsv_sug=0&rsv_sug4=281&rsv_sug1=5&inputT=9313" _
, Destination:=Range("$B$1"))
.Name = _
"s?wd=site%3Axadsyy.com&rsv_spt=1&issp=1&rsv_bp=0&ie=utf-8&tn=baiduhome_pg&rsv_sug3=8&rsv_sug=0&rsv_sug4=281&rsv_sug1=5&inputT=9313"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub但是如果用QueryTables肯定很麻烦,因为Destination是Range类型,还是必要参数
到时候提取收录之后还要清空单元格信息
另外如果是想知道百度首页是不是第一,这个判断貌似也比较复杂。
希望大神解决以上几个问题,真心感谢了!
...全文
相关推荐
用VBA抓取网页数据
用VBA抓取网页数据有不少方法,其中一种便是引用XMLHTTP对象。在这里尝试为大家介绍一下这个对象的一些基本属性和方法还有一些应用示例。
VBA提取网页数据的四种方法
VBA提取网页数据的四种方法,可以应用于excel中vba编程用于从网络自动提取数据。
谈XMLHTTP对象(属性和方法)-VBA抓取网页数据[参考].pdf
谈XMLHTTP对象(属性和方法)-VBA抓取网页数据[参考].pdf
Excel vba使用XMLHTTP进行异步下载的演示
大文件下载不再卡机。XMLHTTP的OnReadyStateChange事件进行异步下载的演示。例子是下载一个8M的mp3文件
网页数据采集 VBA
整理自excelhoom论坛,VBA也可以爬取网页数据,简单高效


网络编程
