找回密码  加入

AUTOIT CN

搜索
查看: 315|回复: 3

[已成交] 30RBM求一个能获取内嵌ie完整cookies的代码

[复制链接]
发表于 2019-6-18 19:12:14 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 guoguo188 于 2019-6-18 23:09 编辑

一句话描述:用ie登录阿里妈妈网站后通过ie对象获取完整cookies来被winhttp使用困难:网站无法post登录,必须模拟,cookies包含httponly(cookie2 )

达成目标:提取出 cookie2 中的数据 看图



补充:可参考完善这个帖子的代码即可  http://www.autoitx.com/thread-53455-1-1.html
      (这个帖子 我提取出的cookie2 数据无法转换使用,也不知道代码正不正确。)


完整案例,送给有缘人,感谢发哥的帮忙

  1. #Region ;**** 参数创建于 ACNWrapper_GUI ****
  2. #PRE_UseX64=n
  3. #PRE_Res_requestedExecutionLevel=None
  4. #EndRegion ;**** 参数创建于 ACNWrapper_GUI ****

  5. #include <IE.au3>
  6. #include <EditConstants.au3>
  7. #include <GUIConstantsEx.au3>
  8. #include <WindowsConstants.au3>
  9. #include <ARRAY.AU3>
  10. #include <WinAPI.au3>
  11. _AddMyIEVersion(1)
  12. $Form1 = GUICreate("Form1", 623, 600, 192, 114)
  13. $ieobj = _IECreateEmbedded()
  14. GUICtrlCreateObj($ieobj, 0, 0, 617, 393)
  15. _IENavigate($ieobj, "https://login.taobao.com/member/login.jhtml?style=mini&from=alimama")
  16. $Edit1 = GUICtrlCreateEdit("", 0, 400, 617, 140, $WS_VSCROLL)
  17. $button = GUICtrlCreateButton("提交", 270, 560, 80, 30)
  18. GUISetState(@SW_SHOW)

  19. While 1
  20.         $nMsg = GUIGetMsg()
  21.         Switch $nMsg
  22.                 Case $GUI_EVENT_CLOSE
  23.                         Exit
  24.                 Case $button

  25.                         MsgBox(0, 0, getjson())
  26.         EndSwitch
  27. ;~         $cookies = _IEDocGetObj($ieobj).cookie
  28. ;~         If GUICtrlRead($Edit1) <> $cookies Then GUICtrlSetData($Edit1, $cookies)
  29. WEnd
  30. Func getjson($sUrl = 'http://www.taobao.com')        
  31.         Local $iSize = 2048
  32.         Local $tBuffer = DllStructCreate('wchar[' & $iSize & ']')
  33.         Local $Ret = DllCall("wininet.dll", "bool", "InternetGetCookieExW", _
  34.                         'wstr', $sUrl, _
  35.                         'wstr', Null, _
  36.                         "struct*", $tBuffer, _
  37.                         "dword*", $iSize, _
  38.                         "dword", 8192, _
  39.                         "ptr", Null)        
  40.         If @error Or Not $Ret[0] Then Return SetError(1, 0, 0)
  41.         Return DllStructGetData($tBuffer, 1)
  42. EndFunc   ;==>getjson
复制代码
  1. ;接上面

  2. Func _AddMyIEVersion($tag = 1)
  3.         Local $script = @ScriptName
  4.         If Not @Compiled Then
  5.                 If $tag = 1 Then
  6.                         RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', 'AutoIt3.exe', 'REG_DWORD', '9000')
  7.                         RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', 'AutoIt3.exe', 'REG_DWORD', '9000')
  8.                         RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', 'AutoIt3.exe', 'REG_DWORD', '9000')

  9.                         RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', 'AutoIt3_x64.exe', 'REG_DWORD', '9000')
  10.                         RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', 'AutoIt3_x64.exe', 'REG_DWORD', '9000')
  11.                         RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', 'AutoIt3_x64.exe', 'REG_DWORD', '9000')
  12.                 Else
  13.                         RegDelete('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', 'AutoIt3.exe')
  14.                         RegDelete('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', 'AutoIt3.exe')
  15.                         RegDelete('HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', 'AutoIt3.exe')

  16.                         RegDelete('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', 'AutoIt3_x64.exe')
  17.                         RegDelete('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', 'AutoIt3_x64.exe')
  18.                         RegDelete('HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', 'AutoIt3_x64.exe')
  19.                 EndIf
  20.         Else
  21.                 If $tag = 1 Then
  22.                         RegWrite('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', $script, 'REG_DWORD', '11000')
  23.                         RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', $script, 'REG_DWORD', '11000')
  24.                         RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', $script, 'REG_DWORD', '11000')
  25.                 Else
  26.                         RegDelete('HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', $script)
  27.                         RegDelete('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', $script)
  28.                         RegDelete('HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', $script)
  29.                 EndIf
  30.         EndIf
  31. EndFunc   ;==>_AddMyIEVersion

复制代码






发表于 2019-6-18 19:12:15 | 显示全部楼层
  1. Func _WinINet_InternetGetCookieEx($sUrl = 'http://www.taobao.com')       
  2.         Local $iSize = 2048
  3.         Local $tBuffer = DllStructCreate('wchar[' & $iSize & ']')
  4.         Local $Ret = DllCall("wininet.dll", "bool", "InternetGetCookieExW", _
  5.                         'wstr', $sUrl, _
  6.                         'wstr', Null, _
  7.                         "struct*", $tBuffer, _
  8.                         "dword*", $iSize, _
  9.                         "dword", 8192, _
  10.                         "ptr", Null)       
  11.         If @error Or Not $Ret[0] Then Return SetError(1, 0, 0)
  12.         Return DllStructGetData($tBuffer, 1)
  13. EndFunc   ;==>getjson
复制代码
回复

使用道具 举报

 楼主| 发表于 2019-6-18 19:21:15 来自手机 | 显示全部楼层
不是要post获取,只要通过调用dll函数  InternetgetcookieExW 调用出来即可  
回复

使用道具 举报

发表于 2019-6-22 22:00:17 | 显示全部楼层
好贴,收藏!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|小黑屋|手机版|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2019-8-21 01:13 , Processed in 0.078124 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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