请选择 进入手机版 | 继续访问电脑版

WinHttp.WinHttpRequest.5.1采集https网页提示"证书作者无效或不正确"

[复制链接]
查看127 | 回复3 | 2021-12-1 18:06:47 | 显示全部楼层 |阅读模式
[Visual Basic] 纯文本查看 复制代码 url="https://www.zgzjzj.com/" '此网站很特别,必须添加证书才能采集 set Http=server.createobject("WinHttp.WinHttpRequest.5.1") Http.SetClientCertificate ("LOCAL_MACHINE/AddressBook/*.zgzjzj.com") '此句无论怎么修改都起不了作用 Http.Option(6)=0 'Http.Option(4) = 13056 '如果加了此条“忽略错误”,虽能采集,但得到的网页却是“405 Not Allowed”  Http.open "GET",url,false   Http.setRequestHeader "cookie",cookie1  Http.setRequestHeader "Referer",url  Http.send
以上这段代码是用asp网页语言(vbscript)实现,javascript等其它编程语言只要采集此网页也会碰到一样的问题。
碰到了一个网页,使用server.createobject("WinHttp.WinHttpRequest.5.1")或者Server.CreateObject("MSXML2.ServerXMLHTTP.5.0")之类的组件都无法获取网站源文件,均提示:
WinHttp.WinHttpRequest 错误 '80072f0d'
证书作者无效或不正确

若加上Http.Option(4) = 13056这句(忽略错误,照常提交),虽然能提交内容,但返回的却是“405 Not Allowed”,显然是因为没有发送证书,导致无法通过验证。

应该怎么修改才能正确采集到此网站的源文件呢?烦请高手测试后给出修改办法!谢谢!
来源:来搜网盘搜索引擎 https://www.laiso.net
回复

使用道具 举报

凯咪 | 2021-12-1 18:35:04 | 显示全部楼层
python爬取https的话,可以用模拟浏览器访问的方式,比如selenium库+Chrome/PhantomJS去爬取数据(selenium库主要用来解决JS渲染的问题)
不用python的话 可以用fiddler,option里边勾选https 即可
回复

使用道具 举报

testpassword | 2021-12-1 18:49:25 | 显示全部楼层
忽略证书验证就可以了,我测试用 winhttp api 可以正常访问。
回复

使用道具 举报

onebee | 2021-12-1 19:30:04 | 显示全部楼层
忽略证书验证返回的是“405 Not Allowed”,显然不发送证书,无法通过验证。
191018fu2900m9fycz2pue.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1

主题

2

帖子

3

积分

新手上路

Rank: 1

积分
3