|
本帖最后由 张文洲 于 2014-9-27 16:04 编辑
最近在学习网页抓取数据,比如要在百度地图查询 “武汉 公园” 的信息,要对查询结果进行翻页,单步运行代码没有问题,按F5就提示:“对象变量或With模块变量未设置”
请大神们指点迷津- Sub LOADIE() '在代码的常见的处理情况
- Dim i, w, k1, n
- Dim k
- Set iea = CreateObject("InternetExplorer.Application")
- iea.Visible = True
- iea.Navigate "http://map.baidu.com/" '←打开某个网页,要一定时间,但代码会往下执行
- Do Until iea.ReadyState = 4 ' 检查网页是否加载完毕(4表示完全加载)
- DoEvents '循环中交回工作权限给系统,以免“软死机”
- Loop
- Set dmt = iea.Document
- dmt.all("PoiSearch").Value = "武汉 公园"
- dmt.all("PoiSearchbtn").Click
- Do Until iea.ReadyState = 4 ' 检查网页是否加载完毕(4表示完全加载)
- DoEvents '循环中交回工作权限给系统,以免“软死机”
- Loop
- i = 1
- w = 2
- k1 = 0
- Do Until i = w + 0
- k1 = dmt.all("result_page_c").sourceIndex '此语句位置出错,单步运行没有问题
- For n = 1 To 14
- If dmt.all(k1 + n).tagName = "SPAN" And dmt.all(k1 + n).innerText = "下一页>" Then
- m = k1 + n - 1
- w = dmt.all(m).innerText + 0
- Exit For
- Else
- End If
- Next
- dmt.all(m + 2).Click
- i = i + 1
- Loop
- End Sub
复制代码
网页数据抓取.rar
(13.08 KB, 下载次数: 55)
|
|