ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: wcymiss

[原创] 不懂html也来学网抓(xmlhttp/winhttp+fiddler)

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2015-6-21 16:19 | 显示全部楼层
本帖已被收录到知识树中,索引项:网页交互

    St = Split(Split(St, "<div class=""mark"">")(1), "</div>")(0)
    arr = Split(St, "<tr align='center'>")


这个什么意思

TA的精华主题

TA的得分主题

发表于 2015-6-22 20:45 | 显示全部楼层

If tb(i).classname = "menu_layout2" Or tb(i).classname = "listone_layout" Or tb(i).classname = "listtwo_layout" Or tb(i).classname = "menu_content_small2" Then

这个我用fillder抓出来一堆东西,怎么分析是这几个关键字的?请问?
看了不少HTML和JAVASCRIPT 感觉还是没系统没明白为啥这么取的?谢谢!

TA的精华主题

TA的得分主题

发表于 2015-6-23 14:47 | 显示全部楼层
oceanintergy 发表于 2015-6-8 21:23
@liuqca,@wcymiss,两位大神,能否行行好,也出出x-amf格式的网页采集教程哈

改学c#吧

TA的精华主题

TA的得分主题

发表于 2015-6-23 20:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
@wcymiss 菜鸟一枚,刚刚开始的作业二:网站:http://www.caac.gov.cn/S1/GNCX/
操作:点击“查询”,获取航班信息数据。
看到下面代码:Set tb = html.all.tags("div")  (疑问3:不明白这里为什么用DIV?)
        For i = 0 To tb.Length - 1
            If tb(i).classname = "menu_layout2" Or tb(i).classname = "listone_layout" Or tb(i).classname = "listtwo_layout" Or tb(i).classname = "menu_content_small2" Then
(疑问4:不明白这里为什么用menu_layout2、listone_layout、listtwo_layout和menu_content_small2)
                n = n + 1
                For j = 0 To tb(i).childnodes.Length - 1  (childnodes是DIV的子标签吗?)
                    Cells(n, j + 1) = tb(i).childnodes(j).innertext
                Next

            End If
        Next
    End With
End Sub

没明白为什么取menu_layout2、listone_layout、listtwo_layout和menu_content_small2???
用fillder取的代码很乱,网页上面直接查看代码的更看不出来了??

TA的精华主题

TA的得分主题

发表于 2015-6-28 15:17 | 显示全部楼层
VBA万岁 发表于 2014-10-24 15:26
多谢onlycxb大侠,经你的指点,增加了如下代码,终于通过:
.Send "{type:'各省福彩'}

有空我再学习下,谢谢VBA万岁。您就是我的万岁爷啊~

TA的精华主题

TA的得分主题

发表于 2015-7-9 22:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wcymiss 发表于 2014-10-24 12:07
提取数据-下载文件
知道下载文件的真实地址,就能很方便的用xmlhttp或winhttp下载文件。

请教吴姐,如果知道下载的文件类型为msword,那么按二进制把 responseBody直接存成 *.doc文件,是否就可以被word程序打开?

TA的精华主题

TA的得分主题

发表于 2015-7-16 18:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wcymiss 发表于 2014-10-21 11:25
vba网抓常用方法:

1、xmlhttp/winhttp法:

send 后面的参数怎么确定啊,小白求指点

TA的精华主题

TA的得分主题

发表于 2015-7-20 17:31 | 显示全部楼层
renahu 发表于 2014-10-22 22:48
从抓下来的一大团数据中用split摘出一个一个的有用信息,有什么规律吗?数据一大团,对于新手来说都晕菜 ...

说出了我的心声,很羡慕高手们的代码,无形中增添了自己的压力。。。

TA的精华主题

TA的得分主题

发表于 2015-7-29 17:23 | 显示全部楼层
吴姐  如果一个网站 登录后还要 点击两下才能得到数据 怎么才能模拟点击呢?
第一下点击的元素:
<h4 class="">订单查询 </h4>
第二下点击的元素:
<a href="javascript:top.addTab('确认发货','/expresscrm/erp/goodsList/goodsList.do?op=list&reviewState=2')">确认发货(<span id="state2">29</span>)</a>

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-7-30 08:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在xmlhttp和winhttp里,没有什么“点击”的概念,所有的网页操作,都转化为post和get。fiddler就是很直白的体现了这种转化。所以,只要在开启fiddler的情况下,操作网页直到网页显示所需数据,然后分析fiddler的内容,将所需的字段填入xmlhtt或winhttp的参数里,即可获取数据。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 02:16 , Processed in 0.053386 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表