抓取gzip压缩网页乱码问题

yx8825 2014-08-30 05:04:55
请教asp抓取gzip网页乱码,怎么解压缩,要asp的
Function GetHttpPage(HttpUrl,webCset)
If IsNull(HttpUrl)=True Or Len(HttpUrl)<18 Or HttpUrl="$False$" Then
GetHttpPage="$False$"
Exit Function
End If
HttpUrl=replace(HttpUrl,"&","&")
If webCset="" then
webCset="gb2312"
end if
Dim Http
Set Http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",HttpUrl,False
'http.setRequestHeader "Accept-Encoding:", "compress"
Http.Send()
If Http.Readystate<>4 then
Set Http=Nothing
GetHttpPage="$False$"
Exit function
End if
If InStr(LCase(Http.getResponseHeader("Content-Encoding")), "gzip") > 0 Then
‘加压缩gzip
end if
GetHTTPPage=bytesToBSTR(Http.responseBody,webCset)
Set Http=Nothing
If Err.number<>0 then
Err.Clear
End If
End Function
...全文
3061 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
会飞的Pikachu 2014-08-30
  • 打赏
  • 举报
回复
今天搞gzip压缩 把我的网站也搞崩溃了一次 现在恢复正常了 这种事还是交给专人搞啊 http://www.ido321.com
yx8825 2014-08-30
  • 打赏
  • 举报
回复
或者能让服务器返回不是gzip压缩格式也行,7za那个方法感觉应该行,但我服务器为了安全考虑禁止了Wscript.Shell
yx8825 2014-08-30
  • 打赏
  • 举报
回复
引用 4 楼 save4me 的回复:
你确定你的乱码是因为gzip压缩的问题吗?bytesToBSTR里面调用了adobe.stream,可以设置Charset,请确保你采集的网页是gb2312(根据你函数里的设置),如果是UTF-8或者GBK等,你需要设成相应的值。 也可以把你要采集的网址贴出来,方便看看网页到底是什么字符集的。
采集网址http://home.sy.fang.com/news/fangtan.htm
save4me 2014-08-30
  • 打赏
  • 举报
回复
你确定你的乱码是因为gzip压缩的问题吗?bytesToBSTR里面调用了adobe.stream,可以设置Charset,请确保你采集的网页是gb2312(根据你函数里的设置),如果是UTF-8或者GBK等,你需要设成相应的值。 也可以把你要采集的网址贴出来,方便看看网页到底是什么字符集的。
孟子E章 2014-08-30
  • 打赏
  • 举报
回复
你可以这样解压 http://www.cnwebshow.com/bc/article_46302.html 不过,如果能使用asp.net写,还是改成asp.net,.net本身提供了很多支持的方法
yx8825 2014-08-30
  • 打赏
  • 举报
回复
现在请求那里没说明,返回的是gzip格式的
引用 1 楼 net_lover 的回复:
很多服务器都支持非压缩的,你采用支持压缩的请求,而你又没有解压的代码。
孟子E章 2014-08-30
  • 打赏
  • 举报
回复
很多服务器都支持非压缩的,你采用支持压缩的请求,而你又没有解压的代码。

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧