python取余什么意思_python中取余

python取余什么意思_python中取余首先取响应头里的编码,如果是几种中文编码之一,则认为中文网页,如果不是中文编码,也不是几种unicode方案之一,则不是中文.否则再在标签里找charset,如果有并且为几种中文编码之一,则是中文如果不是中文编码,也不是几种unicode方案之一,则不是中文.否则对body的内容(如果考虑性能问题,可以不对整个body,只对前N个字节)用正则洗标签过滤所有ASCII码字符,剩余部分…

大家好,又见面了,我是你们的朋友全栈君。

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

# -*- encoding: utf-8 -*-

import requests

import cld2

class Detector(object):

zh_cn_encodes = (‘gbk’, ‘gb2312’, ‘gb18030’)

def __init__(self, context):

self.context = context

def is_zh_cn_encoding(self, ctype):

ctype = ctype.lower()

for ec in self.zh_cn_encodes:

if ec in ctype:

return True

return False

def detect(self):

assert type(self.context) == type(u”), ‘detect unicode string only’

ret = cld2.detect(self.context.encode(‘utf-8’))

return ret[2][0][1] == ‘zh’

def url_detect(self):

r = requests.get(self.context)

assert r.status_code == 200, ‘http code 200 is required’

ctype = r.encoding

if ctype and self.is_zh_cn_encoding(ctype):

return True

else:

self.context = r.text

return self.detect()

if __name__ == ‘__main__’:

print Detector(u’短中文有bug’).detect()

print Detector(u’网页文件一般没问题’).detect()

print Detector(u’これは日本で’).detect()

url = ‘http://segmentfault.com/q/1010000000432652’

print Detector(url).url_detect()

url = ‘https://code.google.com/p/chromium-compact-language-detector/source/browse/README’

print Detector(url).url_detect()

x00-xff ↩

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129873.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月25日 下午4:40
下一篇 2022年4月25日 下午4:40


相关推荐

  • uwsgi停止[通俗易懂]

    uwsgi停止[通俗易懂]uwsgi停止和nginx配置uwsgi停止nginx配置uwsgi停止必须在uwsgi.ini中配置好pidfile=绝对路径///uwsgi.pid这样才有pid文件uwsgi–stopuwsgi.pid这样就可以停止了有一点需要注意:如果没有uwsgi.pid又需要停止uwsgi服务可以netstat…

    2025年10月29日
    9
  • ubuntu全盘备份与恢复[通俗易懂]

    ubuntu全盘备份与恢复

    2022年2月4日
    65
  • ES6—new Promise()讲解,Promise对象是用来干嘛的?应该怎么用?使用场景有哪些?

    ES6—new Promise()讲解,Promise对象是用来干嘛的?应该怎么用?使用场景有哪些?ES6Promise先拉出来遛遛复杂的概念先不讲,我们先简单粗暴地把Promise用一下,有个直观感受。那么第一个问题来了,Promise是什么玩意呢?是一个类?对象?数组?函数?别猜了,直接打印出来看看吧,console.dir(Promise),就这么简单粗暴。这么一看就明白了,Promise是…

    2022年4月30日
    89
  • Django(53)二次封装Response

    Django(53)二次封装Response前言有时候我们使用drf的Response,会发现默认返回的格式不太友好,每次我们都需要写入以下的格式returnResponse({"status":0,"

    2022年7月29日
    14
  • 前端浏览器全屏

    前端浏览器全屏vardocElm document documentElem varexplorer window navigator userAgent toLowerCase if explorer indexOf chrome gt 0 webkitif document body scrollHeight window screen height amp amp document body scrollWidth windo

    2026年3月19日
    2
  • on error resume next用法

    on error resume next用法onerrorresum 用法转载源作者 xuxujianVBSc 语言提供了两个语句和一个对象来处理 运行时错误 如下所示 OnErrorResum 语句 OnErrorGoto0 语句 Err 对象简单介绍一下 OnErrorResum OnErrorGoto0 Err 这三者 OnErrorResum 语句和 OnErrorGoto0 语句指明了当出现 运行时错误 时的处理方式 当加上 OnErrorResum

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号