java - 我正在写一个爬虫,怎么通过网页内容误别出是否为中文网页?
PHP中文网
PHP中文网 2017-04-17 12:58:30
[Python讨论组]

因定制内容较多,暂时无发现现有爬虫框架满足要求,所以需要自己写(用redis做队列)。
我的问题是在爬虫得到一个网页之后,怎么识别出这个网页是否为中文网页

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(4)
PHP中文网

用 Google Chrome 的识别算法吧,支持 HTML,有 Python 绑定。

PHPz

首先取响应头里的编码,
如果是几种中文编码之一,则认为中文网页,
如果不是中文编码, 也不是几种unicode方案之一, 则不是中文.
否则再在<head>标签里找 charset ,
如果有并且为几种中文编码之一, 则是中文
如果不是中文编码, 也不是几种unicode方案之一, 则不是中文.
否则对body的内容(如果考虑性能问题,可以不对整个body,只对前N个字节)用正则洗标签
过滤所有ASCII码字符, 剩余部分按字取内码,
如果考虑性能问题其实取第一个字符就可以了,
如果性能不重要,可以多采样几个(防止一个页面有中文日文等各种文字混合)
判断采到的字符的内码是否位于中文unicode区域.

(PS: 如果性能非常不重要, 只是要代码简单, 那么做法可以: 正则 [^\x00-\xff] 这样可以取到第一个不是ASCII的字符, 判断这个字符是否是中文字符就可以了)

巴扎黑

检查网页编码,看看有没有对应编码的中文字符。

高洛峰

正则取出中文字符,看看在整个页面上的占比

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号