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 条评论
登录 后参与评论

相关文章

来自专栏彭湖湾的编程世界

redux-form的学习笔记二--实现表单的同步验证

(注:这篇博客参考自redux-form的官方英文文档)左转http://redux-form.com/6.5.0/examples/syncValidatio...

3145
来自专栏奔跑的蛙牛技术博客

ElementRef & TemplateRef & ViewContainerRef

今天在做ng项目,看着前人的代码有 viewChild() 等关键字。新手有点疑惑,索性查查资料总结一下和ng相关的几个和DOM相关的几个概念

1842
来自专栏ChaMd5安全团队

香香的xss小记录(一)

0x00 前言 总结的一些xss的技巧(可能会持续更新),愿大佬勿喷,还有什么方法,大佬记得分享啊。有什么看不惯的错误请在本文留言,谢谢。 0x01 我认为最...

3586
来自专栏coder修行路

python爬虫从入门到放弃(八)之 Selenium库的使用

一、什么是Selenium selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium R...

6597
来自专栏向治洪

Vue.js 2.5新特性介绍

TypeScript TypeScript是一种由微软开发的自由和开源的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和...

2938
来自专栏十月梦想

Vue实现简单todoList以及jquery实现对比

上一篇文章,了解了Vue的hello world程序;这次简单了解两个vue指令,v-for和v-model,来实现一个简单的todolist;

1473
来自专栏技术墨客

React学习(最终篇)—— 高阶应用:高阶组件(HOCs)

高阶组件(higher-order components:以下简称HOC或HOC组件)是一个React组件复用的高级技巧。HOCs本身并不是React的API接...

1894
来自专栏木子墨的前端日常

react-navigation 使用笔记 持续更新中

React-Navigation是目前React-Native官方推荐的导航组件,代替了原用的Navigator。最近开始接触,做个笔记

1024
来自专栏专注 Java 基础分享

struts2标签库----数据标签详解

     上篇文章我们介绍struts2标签库中的控制标签的基本使用和部分原理,本篇文章接着了解下标签库中有关数据标签的使用和原理。主要涉及以下数据标签: ac...

23710
来自专栏有趣的django

微信小程序入门(四)

WXSS(WeiXin Style Sheets)是一套样式语言,用于WXML的组件样式

1942

扫码关注云+社区