VBA XMLHTTP 获取网页信息数据不全

u012819276 u012819276 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
目标:每天向下一行叠加添加网站SEO数据

方法:采用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类型,还是必要参数
到时候提取收录之后还要清空单元格信息

另外如果是想知道百度首页是不是第一,这个判断貌似也比较复杂。

希望大神解决以上几个问题,真心感谢了!
...全文
评论 9
收藏 已收藏
分享
返回顶部
u012819276
网络编程 1,502 成员 18,427 内容