龙空技术网

VBA代码、网页数据采集、爬取文章

天涯追梦56 346

前言:

此刻大家对“vba爬虫实例”大体比较着重,你们都想要了解一些“vba爬虫实例”的相关知识。那么小编同时在网摘上收集了一些有关“vba爬虫实例””的相关知识,希望兄弟们能喜欢,朋友们一起来了解一下吧!

应粉丝要求做一篇爬取网页上的文章。

实现功能:爬取网站上的一篇文章并保存到记事本上。

下面是代码分享

Sub 采集网页上的文章保存到记事本()

Dim oHtml As Object

Set oHtml = VBA.CreateObject("WinHttp.WinHttpRequest.5.1") '创建http对象

Dim sUrl As String

'指定要抓取的网站

sUrl = ";

With oHtml

.Open "GET", sUrl, False '向服务器发送指定链接地址

.send '发送

'获取返回的字节数组

bResult = .ResponseBody

'按照指定的字符编码显示

sResult = bytestobstr(bResult, "GB2312")

shu = Split(sResult, "<p>") '拆分返回来字符串赋给数组

For wun = 1 To UBound(shu) - 1 '循环数组最大下标

js = js & Chr(13) & Replace(shu(wun), "</p>", "") '把数组里的内容写变量

Next wun

js2 = Split(shu(UBound(shu)), "</p>") '按指定字符拆分内容并赋给变量

Open ThisWorkbook.Path & "\网文采集.txt" For Output As #1 '打开当前工作簿下的记事本,如果没有就创建

Print #1, js & js2(0) '把内容写进记事本里

Close #1 '关闭记事本

End With

Set oHtml = Nothing '清空对象

MsgBox "网文采集完成"

End Sub

'下面是采集用到的Bstr编码转换函数

Function bytestobstr(strbody, codebase)

Dim objstream

On Error Resume Next

Set objstream = CreateObject("adodb.stream")

With objstream

.Type = 1

.Mode = 3

.Open

.write strbody

.Position = 0

.Type = 2

.Charset = codebase

bytestobstr = .readtext

End With

objstream.Close

Set objstream = Nothing

If Err.Number <> 0 Then bytestobstr = ""

On Error GoTo 0

End Function

如果想多学习一点可以去我公众号看,上面写得详细一点

标签: #vba爬虫实例