找回密码
 加入
搜索
查看: 2277|回复: 5

[网络通信] ObjCreate("WinHttp.WinHttpRequest.5.1") 获取网页源代码,如何设定cookie

  [复制链接]
发表于 2019-11-20 10:48:25 | 显示全部楼层 |阅读模式
ObjCreate("WinHttp.WinHttpRequest.5.1") 获取网页源代码,如何设定cookie为IE浏览器?
网上抄的一段代码

$url = 'https://detail.1688.com'
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Option(4) = 13056 ;忽略错误标志
$oHTTP.Option(6) = True ;是否接收重定向地址信息
$oHTTP.SetTimeouts(30000, 30000, 30000, 30000)
$oHTTP.Open('GET', $url, True)
$oHTTP.Send()
$oHTTP.WaitForResponse()
$Respond = BinaryToString($oHTTP.ResponseBody, 1)


用来下载网页源代码的,但是1688网站要求登录才能显示正确的网页,登录代码我不会写,如果能指定cookie为IE浏览器所用的cookie的话,我就可以用IE浏览器登录有再运行这段代码,有会的网友吗?
或者ObjCreate("WinHttp.WinHttpRequest.5.1")怎么用账号密码登录网站?用_IECreate我会写,但是ObjCreate("WinHttp.WinHttpRequest.5.1")我是第一次用,这个速度极快,适合我批量抓取网页。
发表于 2019-11-21 09:28:36 | 显示全部楼层
本帖最后由 zch11230 于 2019-11-21 09:39 编辑

$oHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
$oHTTP.setRequestHeader('Cookie', 'JSID=123456789')

WinHttp.WinHttpRequest.5.1可以这样设置协议头  cookie user-agent都是协议头。都这样设置就可以了。


看错问题了
如果是要AU3继承IE的cookie,可以用抓包工具,把cookie抓下来,然后上面的方法,设置成同样的cookie就可以了

如果是要ie继承au3的cookie,取出cookie后设置到系统,论坛有设置cookie的代码,我之前还用过的。
GetResponseHeader取cookie,wininet.dll  InternetSetCookie设置ie的cookie


发表于 2019-11-20 12:25:54 | 显示全部楼层
没法设置的,两个是完全不同的东西
 楼主| 发表于 2019-11-20 15:10:57 | 显示全部楼层
轩辕小妖 发表于 2019-11-20 12:25
没法设置的,两个是完全不同的东西

好的,谢谢,那我用IE吧。
发表于 2019-11-20 15:47:32 | 显示全部楼层
junziyeaicai 发表于 2019-11-20 15:10
好的,谢谢,那我用IE吧。

可以试试先用IE访问一次,然后读取cookies,然后再附加到WinHttp请求头中
 楼主| 发表于 2019-11-21 10:38:52 | 显示全部楼层
zch11230 发表于 2019-11-21 09:28
$oHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
$oHTTP. ...

好的,我研究研究,目前我的知识储备还没法执行你说的方法,我先网上查下资料,成功后再过来回复你。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-3-30 00:00 , Processed in 0.069346 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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