ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 网抓请求无响应

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-6-20 21:57 | 显示全部楼层 |阅读模式
本帖最后由 13107981237 于 2019-6-20 22:25 编辑

请教网抓大神,网抓请求无响应
代码如下

Sub Main33()
    Dim strText As String
    Dim strCookie As String
   
    With CreateObject("WinHttp.WinHttpRequest.5.1")
        .Option(6) = False ' 禁止重定向,以获取原网页信息
        .Open "GET", "http://budw.fleetsystem.cn/wv/", False
        .Send
        .SetProxy 2, "127.0.0.1:8888"
        strText = .getAllResponseHeaders  '获取所有的回应头信息
       ' Debug.Print strText: Stop '在立即窗口里查看头信息
        strCookie = Split(Split(strText, "Set-Cookie:")(1), ";")(0) '取出Cookie值
                 '在同一个winhttp对象里能保留cookie,为了体现设置cookie的作用,启用一个新的winhttp对象
          .Open "post", "http://budw.fleetsystem.cn/wv/signin?-1.IFormSubmitListener-signInPanel-signInForm", False
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .setRequestHeader "Referer", "http://budw.fleetsystem.cn/wv/signin;jsessionid=5B71299D139BF6A27A3A8C432D71DF8F"
        .setRequestHeader "Cookie", strCookie '模拟Cookie
        .SetProxy 2, "127.0.0.1:8888"
        .Send "id1_hf_0=&username=put-admin&password=put123456&languageContainer%3Aoption=&rememberMeContainer%3ArememberMe=on"
        strText = .getAllResponseHeaders
         Debug.Print strText
      sx0 = Split(Split(strText, "Set-Cookie:")(1), ";")(0) '取出Cookie值
       sx1 = Split(Split(strText, "Set-Cookie:")(2), ";")(0) '取出Cookie值
        sx2 = sx1 & ";" & strCookie
      
      End With

    With CreateObject("WinHttp.WinHttpRequest.5.1")
        .Open "get", "http://budw.fleetsystem.cn/wv/entity?3", False
         .SetProxy 2, "127.0.0.1:8888"
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .setRequestHeader "Referer", "http://budw.fleetsystem.cn/"
        .setRequestHeader "Cookie", sx2  '模拟Cookie
        .Send
        End With
   
'--------------------------------------   以下fiddler 响应就不正常了,而且有一个参数无法模拟出来(红色部分)-----------------------------------------------------------------------------------------------------------
    With CreateObject("WinHttp.WinHttpRequest.5.1")
        .Open "get", "http://budw.fleetsystem.cn/wv/entity?3-1.IBehaviorListener.0-theme-header-primaryMenuBar-menuItems-2-topMenu-subMenuItems-5-content-menuLink&_=1561034268990", False
         .SetProxy 2, "127.0.0.1:8888"
         .Option(6) = False ' 禁止重定向,以获取原网页信息
         .setRequestHeader "Wicket-Ajax", "true"
          .setRequestHeader "Wicket-Ajax-BaseUR", "entity?3"
         .setRequestHeader "Wicket-FocusedElementId", "id1e"
         .setRequestHeader "X-Requested-With", "XMLHttpRequest"
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        .setRequestHeader "Referer", "http://budw.fleetsystem.cn/wv/entity?3"
        .setRequestHeader "Cookie", sx2  '模拟Cookie
        .Send
        End With
  
  With CreateObject("WinHttp.WinHttpRequest.5.1")
           .Open "post", "http://budw.fleetsystem.cn/wv/entity?3-1.IBehaviorListener.1-theme-actionPromptModalWindow-content-parameters-inputForm-okButton", False
            .SetProxy 2, "127.0.0.1:8888"
           .setRequestHeader "Referer", "http://budw.fleetsystem.cn/wv/entity?3"
           .setRequestHeader "Cookie", sx2
           .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
           .Send "id6e_hf_0=¶meters%3A1%3AscalarNameAndValue%3AscalarTypeContainer%3AscalarIfRegular%3AentityLink%3AautoComplete=security.AppTenancy%3As_%2Fbudw%2FPUT_New%5E6%3Aput-admin%3A¶meters%3A2%3AscalarNameAndValue%3AscalarTypeContainer%3AscalarIfRegular%3AscalarValueContainer%3AscalarValue=2019-06-15¶meters%3A3%3AscalarNameAndValue%3AscalarTypeContainer%3AscalarIfRegular%3AscalarValueContainer%3AscalarValue=2019-06-15&okButton=1"
       End With
End Sub


请教大师指导迷津!!

http://budw.fleetsystem.cn/








无标题.jpg
无标题22.jpg

TA的精华主题

TA的得分主题

发表于 2019-6-21 04:45 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-6-21 08:37 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-21 11:57 来自手机 | 显示全部楼层
本帖最后由 13107981237 于 2019-6-21 12:23 编辑
YZC51 发表于 2019-6-21 08:37
红色字体请查时间戳!

我回去试一下时间戳。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-21 12:00 来自手机 | 显示全部楼层
zpy2 发表于 2019-6-21 04:45
需要密码登陆。。。


给忘了,补上

put-admin
put123456

TA的精华主题

TA的得分主题

发表于 2019-6-21 13:01 | 显示全部楼层
13107981237 发表于 2019-6-21 12:00
给忘了,补上

put-admin

你的浏览器需要设置代理才能访问这个网站吗?
看你的代码有这一段 SetProxy 2, "127.0.0.1:8888"

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-21 16:35 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
samsinn 发表于 2019-6-21 13:01
你的浏览器需要设置代理才能访问这个网站吗?
看你的代码有这一段 SetProxy 2, "127.0.0.1:8888"

不是.用winhttp5.1 在fidder 中无法抓包..要用这个代理才行.这句调试抓包用的

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-6-21 17:12 | 显示全部楼层
samsinn 发表于 2019-6-21 13:01
你的浏览器需要设置代理才能访问这个网站吗?
看你的代码有这一段 SetProxy 2, "127.0.0.1:8888"

不是,用winhttp代理无法被fiddler 抓包,用了这句就可以了

TA的精华主题

TA的得分主题

发表于 2019-6-21 17:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你不应该用模拟Cookie的方法,应该直接写登录
我在工具里看到是已经登录上去了,跟着的就自己写吧.
  1. Sub jkl()
  2.     Dim http As Object


  3. Set http = CreateObject("MSXML2.XMLHTTP.6.0") '2003可用5.0或者以下的版本,2007以上需要改成MSXML2.XMLHTTP.6.0                          |
  4.         '                                                                                                                               |
  5.       '                                                                                                                   |

  6.     user = "put-admin"
  7.     pass = "put123456"
  8.    


  9.     With http
  10.         .Open "post", "http://budw.fleetsystem.cn/wv/signin?-1.IFormSubmitListener-signInPanel-signInForm", False

  11. Data = "id1_hf_0=&username=" & user & "&password=" & pass & "&languageContainer%3Aoption=&rememberMeContainer%3ArememberMe=on"

  12.         
  13. .setRequestHeader "Accept", "application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, */*"
  14. .setRequestHeader "Referer", "http://budw.fleetsystem.cn/wv/signin"
  15. .setRequestHeader "Accept-Language", "zh-CN"
  16. .setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
  17. .setRequestHeader "Accept-Encoding", "gzip, deflate"
  18. '.setRequestHeader "Host", ipx
  19. .setRequestHeader "Content-Length", Len(Data)
  20. .setRequestHeader "Connection", "Keep-Alive"
  21. .setRequestHeader "Cache-Control", "no-cache"
  22. .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  23.      
  24.         .Send (Data)
  25.         



  26.     End With
  27.    
  28. '登录完成,以下开始提取操作--------------------------------------


  29. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2019-6-21 19:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
laynet 发表于 2019-6-21 17:49
你不应该用模拟Cookie的方法,应该直接写登录
我在工具里看到是已经登录上去了,跟着的就自己写吧.

照顾一下伸手党呗,写个完整的,我试一试
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-18 20:06 , Processed in 0.048353 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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