VBA登录抓取网络数据

受限在网页上右击查看网页源代码,按Ctrl+F搜索form表单,找到post的网址(或者自身就是post的网址),然后找到账号和密码的name,用来做VBA里Send的Data,这样登录完就可以直接post数据获取网址获取网页数据了,这里举例代码最后是返回文本,可以用left和right配合instr、invinstr、len等反复截取文本,或者直接用正则表达式。

Set http = CreateObject("Msxml2.ServerXMLHTTP") http.Open "post", "登录网址", False http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" Data = "username=账号&password=密码" http.send (Data)

http.Open "post", "数据获取网址", False http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" Data = "参数名=参数值" http.send (Data) html = http.responsetext

If InStr(HTML, "由于访问订单详情页过于频繁") > 0 Then '绕过验证码 http.Open "post", "http://om.jd.com/verify_doOrderInfoverify", False http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" Data = "codes=&returnUrl=http://om.jd.com/detail" http.send (Data) HTML = http.responsetext '未测试是否返回原网页 End If

文本处理的子函数举例

Function sf(a, b, c, d) '文本存在判断返回 If InStr(a, b) <> 0 Then sf = c Else sf = d End If End Function

Function smid(a, b, c) '截取首次出现文本中间 If InStr(a, b) > 0 Then smid = Right(a, Len(a) - InStr(a, b) - Len(b) + 1) If InStr(smid, c) > 0 Then smid = Left(smid, InStr(smid, c) - 1) End If End If End Function

Function sp(a, b, c) 'HTML关键字截取 sp = smid(a, b, c) If InStr(sp, "</a") Then sp = smid(sp, "<a", "/a") Else sp = smid(sp, "<td", "/td>") End If sp = smid(sp, ">", "<") sp = Replace(sp, Chr(10), "") sp = Replace(sp, Chr(11), "") sp = Replace(sp, Chr(13), "") sp = Replace(sp, " ", "") End Function

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

最详细的 linux grep命令教程

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印...

720
来自专栏nummy

Python数据科学手册(一)【IPython入门】

输入和输出通过In/Out标签标示,实际上In和Out分别是两个变量,保存了最近的输入输出信息。可以直接通过下标获取之前的输入或者输出。

762
来自专栏用户2442861的专栏

notepad++ 快捷键

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details...

431
来自专栏Android干货园

Java三目运算

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/47...

1034
来自专栏V站

Note丨记41条Web程序员日常使用的代码!

1888
来自专栏熊二哥

Markdown快速入门

现在博文写作次数渐渐变多,经常看到很多园友的博文样式都非常的美观,个人虽然是个土鳖,但对美也是有很强需求的,同时由于最近将要上线一个博客项目,因此也很关心如何可...

2136
来自专栏BestSDK

Android Studio 开发必备的17个快捷键,效率提高一倍!

1. 书签(Bookmarks) 描述:这是一个很有用的功能,让你可以在某处做个标记(书签),方便后面再跳转到此处。 调用:Menu → Navigate → ...

37912
来自专栏用户2442861的专栏

IDEA Intellij小技巧和插件

使用IDEA Intellij已有两年,在此罗列一下在实践中觉得能有效提升开发效率的一些小技巧和插件。  1. 重设移动键 方向键和Home/End键离...

611
来自专栏Thinks

【译】W3C WAI-ARIA最佳实践 -- 表单

三态复选框的一种常见使用场景是在软件安装时,一个单独的三态复选框用来代表和控制整个安装选项组的状态。并且,该组中的每个选项都可以单独使用双态复选框开启或关闭。

2693
来自专栏阿炬.NET

Visual Studio中安装viemu后,vim vax 快捷键大全

2745

扫码关注云+社区