ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2015-2-2 14:39 | 显示全部楼层
本帖已被收录到知识树中,索引项:网页交互
本帖最后由 jboy0813 于 2015-2-2 14:51 编辑

同样的代码,在win7上能正常使用,换到XP上后就不正常了呢?

经测试,问题原因是在XP上POST不上数据导致的,

想问下还有其它朋友遇到过这个问题吗?
我也注意到了POST要用大写.
  1. Set 访问 = CreateObject("WinHttp.WinHttpRequest.5.1")
  2.         With 访问
  3.         .Open "POST", URL, True
  4.         .setRequestHeader "Referer", 主URL
  5.         .send pst
  6.         
  7.         .WaitForResponse
  8.         'If .Status <> 200 Then MsgBox "连接出错"
  9.         Mycookie = GetCookie(.GetAllResponseHeaders)
  10.         Set xmldoc = CreateObject("msxml2.domdocument")
  11.         xmldoc.async = False
  12.         xmldoc.LoadXML (.responsetext)

  13.         If xmldoc.getElementsByTagName("message")(0).Text <> "" Then
  14.             '登陆失败
  15.             登陆窗口.用户信息_lab = xmldoc.getElementsByTagName("message")(0).Text
  16.             
  17.             登陆窗口.Height = 148
  18.             Set xmldoc = Nothing
  19.             Set 访问 = Nothing
  20.             Exit Function
  21.         End If
复制代码


TA的精华主题

TA的得分主题

发表于 2015-2-9 16:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wcymiss 发表于 2014-11-10 10:51
有些网站判断是否是合法用户只根据cookie,这样的网站就可以手工用IE浏览器登录后,用xmlhttp去获取登录后 ...

不知老师有没有带验证码的登录成功实例或教学帖?

TA的精华主题

TA的得分主题

发表于 2015-2-9 16:36 | 显示全部楼层
wcymiss 发表于 2014-11-13 11:46
先说抓包问题。
你抓到的这张图里,左上部分显示session是从第78条开始,你有没有移动它边上的滚动条, ...

我遇到过几例用MSXML2.XMLHTTP没显示登录成功(应该是失败的——因为用Debug.Print .responsetext在立即窗口得到的登录responsetext文本与手工登录成功后抓包得到的登录responsetext文本完全不一样),但可以获取其中一些页面的数据(运行代码之前已经确认退出登录了或者运行代码登录的是另一个用户名及密码),这些数据平时在浏览器没有成功登录的情况下是不会显示或页面是无法打开的。不知这个作何解释?

TA的精华主题

TA的得分主题

发表于 2015-2-9 16:55 | 显示全部楼层
zongyj 发表于 2014-12-4 14:40
企业信息查询

“在xmlhttp对象里模拟Referer是无效的。必须要用winhttp对象”
Mark一下,有空测试看看。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-2-11 09:35 | 显示全部楼层
VBA万岁 发表于 2015-2-9 16:04
不知老师有没有带验证码的登录成功实例或教学帖?

代码识别验证码并登录:
参见蓝天大师的帖子

手工识别验证码并登录:
http://club.excelhome.net/thread-1183493-1-1.html

TA的精华主题

TA的得分主题

发表于 2015-2-12 08:46 | 显示全部楼层
wcymiss 发表于 2015-2-11 09:35
代码识别验证码并登录:
参见蓝天大师的帖子

多谢指点!有空我再去那个帖子学习一下......
不过那个帖子的代码似乎是出自Super(浮华、缠绕指尖)而并非蓝天大师。

TA的精华主题

TA的得分主题

发表于 2015-2-12 11:15 | 显示全部楼层
wcymiss 发表于 2014-10-24 12:07
提取数据-下载文件
知道下载文件的真实地址,就能很方便的用xmlhttp或winhttp下载文件。

老师 你好!
为什么我测试了上面的代码 显示“要求对象”呢?
求解答,谢谢!

点评

ByteToFile是自定义函数。参考帖子里的“常用函数”  发表于 2015-2-12 13:07

TA的精华主题

TA的得分主题

发表于 2015-2-12 22:43 | 显示全部楼层
麻烦帮忙解决一下,POST获取的乱码
  1. Sub Main()
  2.     Dim strText As String
  3.     Dim strCookie As String
  4.     With CreateObject("WinHttp.WinHttpRequest.5.1")
  5.         .Option(6) = False ' 禁止重定向,以获取原网页信息
  6.         .Open "post", "http://chadianfei.com/", False
  7.         .SetRequestHeader "Referer", "http://chadianfei.com/"
  8.         .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"
  9.         .SetRequestHeader "Host", "chadianfei.com"
  10.         .Option(2) = 65001    'Option(2) =936或950或65001     'GB2312/BIG5/UTF-8
  11.         .Send "pgv_pvi=8410811392; user=" & ID & "; pass=888888; check=on;"
  12.         strText = .ResponseText
  13.         MsgBox strText
  14.     End With
  15. End Sub
复制代码

点评

我帖子里有写关于转码的。看目录  发表于 2015-2-13 13:48

TA的精华主题

TA的得分主题

发表于 2015-2-13 14:26 | 显示全部楼层
wcymiss 发表于 2014-10-24 12:07
提取数据-下载文件
知道下载文件的真实地址,就能很方便的用xmlhttp或winhttp下载文件。

    吴老师,您的贴子太赞了,为我打开了web操作类编程又一思路。我以前总使用浏览器模拟的方式来实现网络批量下载。我有一个问题,怎么从fiddler中找到指定操作的下载地址。

点评

这个不是在帖子开头部分有写吗?  发表于 2015-2-15 12:43

TA的精华主题

TA的得分主题

发表于 2015-2-13 19:18 | 显示全部楼层
zzmaixz 发表于 2015-2-12 22:43
麻烦帮忙解决一下,POST获取的乱码

谢回复,刚看了你帖子里面的解码为URL解码,和我这问题里面的解码方式不一样

点评

那个是发送数据的转码。后面还有关于获取数据的转码。  发表于 2015-2-15 12:42
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-7-8 15:26 , Processed in 0.050379 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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