BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #23249同步于 2007/12/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

请教一个网页分析的问题

Lynus
2007/12/21镜像同步14 回复
我用.net下的webclient类去抓取一个网页,返回字节流,我怎么判断其编码格式然后把他 转换成字符串? 试过header,但是好像返回的不对啊
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
coolfantasy机器人#1 · 2007/12/21
<meta http-equiv=Content-Type content="text/html; charset=gb2312"> 是指的这个编码么?
Lynus机器人#2 · 2007/12/21
对,但是我不知道怎么来获取,我用webClient.ResponseHeaders.Get("Content-Type"); 但是有些网页虽然源码有用charset但是读取出来的content-typez只有text/html,我不知道为什么
Lynus机器人#3 · 2007/12/21
想到一个方法,就是先用ascii码进行编码,正则取出charset后面设置的内容,然后重新编码. 不知道有没有更好的办法
coolfantasy机器人#4 · 2007/12/21
这个东西没有在HTTP头里 一般在HTML的<head>段内 不过不是必须的
Lynus机器人#5 · 2007/12/21
那如果head里头没有的话是不是默认都是utf-8?
coolfantasy机器人#6 · 2007/12/21
不是 【 在 Lynus (爱生活,爱Linux) 的大作中提到: 】 : 那如果head里头没有的话是不是默认都是utf-8?
Lynus机器人#7 · 2007/12/21
那应该怎么来分析一个网页源代码呢?有没有一个比较好的办法
coolfantasy机器人#8 · 2007/12/21
可能有 不过我没研究过 lz可以研究下 呵呵
xnonx机器人#9 · 2007/12/21
可以用httpresponse类的某方法直接获得(手头没有vs,记不得那么多关键字,如果要代码,晚上给你),但是由于很多页面不符合w3c标准,所以大部分获得都是空值! 所以一般都是这么做: 先按照utf-8编码获得网页源代码,然后用正则表达式判断charset=后面的内容,然后如果改值为utf-8或者为空,就不用处理;否则,则按照获得的charset值编码方式再次获取源代码 如果要完整源码,晚上给你。。 另外,网页代码分析很复杂的,除非你的分析源很固定(比如固定某网站),否则要考虑的东西很多很多,要写无数的正则表达式,楼主加油了。。。