Python从txt文件中读取黑词并简单匹配字符串

下班前同事收到一封邮件说客户在系统中发送短信时候提示有黑词,但因为sp并没有指出具体是冒犯了哪个黑词。找负责短信接口的同事要了一个黑词列表,里边有上千行的黑词,因为着急下班回家,想到处理这些小问题还是得Python这些小脚本出马。先将黑词列表文件存成utf-8格式「个人爱好,非必须步骤」在编辑器中写入如下代码:#-*-coding:utf-8-*-importsysreload(sys)sys.setdefaultencoding('utf-8')f=open('test.txt','rb')foriinf:ifiinu"短信内容":printi.decode('utf-8')但是事实和想象不同的是,内容基本没有匹配出来……然后各种检查:for循环中输出判断某一个黑词是否=='黑词',结果居然不等以为是各种编码问题,开始保存成gbk,来回转换编码……无果抽风输出了for循环中每行字符的长度...

精彩继续

Sqlserver查找非数字数据行

同事做的某系统数据库字段类型设置成了nvarchar,但实际上那个字段存储的数据应该是都是数字(带小数点)格式的数据。抛开SQL查询效率的问题不说,这一列数据用区间筛选时候就非常成问题……找这些脏数据的时候开始俺比较笨,直接用SELECT[COLUMN]+1FROM[TABLE]这种方式,让SQL自动提示无法将列中数据转换成数字类型,然后无法正确执行+1的操作,然后根据提示再去找对应数据……万幸的是进入数据库的错误数据并不多,仅仅3条记录。紧急修改完成后搜索了一下,果然SqlServer已经有函数可以判断数据是否数字:ISNUMERICSELECT*FROMTABLEWHEREISNUMERIC(COLUMN)=0幸亏脏数据并不多,否则要感慨下:业务不熟练害死人啊

精彩继续

Python环境一键配置安装(debian)

本安装包仅在32位的debian6系统中测试通过,其中「debian.sh」为参考军哥的lnmp0.9版本,安装后默认为lnmpa环境。我做了一点简单修改增加了ngx_cache_purge模块。如果已经安装过lnmp0.9可以无需执行「debian.sh」脚本(未做严格测试,如有问题可留言反馈)。安装此一键包可以在安装lnmp0.9版本基础上执行python.sh。执行过python.sh后安装的软件列表:Python-2.7.2python-pycurlsetuptools-0.6c11libxml2-2.7.8libxml2dom-0.5tornado-2.3uwsgi-1.1.2Jinja2-2.6py-redisrequestsDBUtils-1.1MySQL-python-1.2.3Imaging-1.1.7libmemcached-1.0.9pylibmc-1.2.3如没有单...

精彩继续

在SAE部署美胸站点图文教程

被问太多次要如何在SAE部署晒美胸的问题了,本来在代码的README中已经说明了安装部署步骤,但好像有的同学还是无从下嘴。如果部署到SAE请直接看SAE的官方文档第一次安装直接将install.sql导入SAE的数据库修改setting.py中站点标题及open.weibo.com中申请到的APPKEY即可修改config.yaml中版本号及name为你自己的如果之前已经下载过我提供过的上一版本代码,需执行update.sql后台地址http://xxx.sinaapp.com/admin(注意没有最后的/)默认用户名111@1.cn密码111,可进后台修改,不可直接修改数据库中用户名首先登陆SAE,选择创建应用选择刚创建的应用,然后在服务管理中点击MySQL,并且点击点此初始化Mysql的按钮初始化MySQL,并导入install.sql(SAE的Mysql管理就是phpmyadmin,...

精彩继续

晒美胸图片站开发过程

上周四花了整整一个下午扒了牧风同学的iphoto主题,直接复制了牧风开源的主题中图片和样式表目录,然后用firebug手动扒的HTML结构。瀑布流用的jquery.masonry而没有直接扒牧风同学的jquery.waterwall「因为牧风同学的js简单混淆了,重新梳理一遍的时间足够我写个简单的瀑布流了」。再用了不到一个小时简单写了一个根据关键词抓取渣浪微博图片的小代码:入库、分页显示、瀑布流。简陋的甚至连一个后台都没有。把抓取图片的URL直接扔给uptimerobot监控起来,这样就可以实现自动抓取图片自动入库了。赶在下班前简单的部署在了SAE上,周五开始就放假休端午节。周六才有时间上网看了一下,发现uptimerobot报了一些5xx错误,但数据也自动抓了几百条。简单暴力的try:except屏蔽掉了异常,然后打包放在了hostloc上下载。周日晚上回京在电脑上才发现有几十人下载,但...

精彩继续

SAE图床增加上传API

自己给自己挖了个坑…前几天才写文章说要给SAE图床增加api方式上传,这拖了几天有朋友就催了一下,正好这几天工作的进度往前赶了赶,挤了点时间把坑填了一点…好久没有用git了,发现怎么push都不能push到github上,即便push时候提示是up-to-date,但在github上看还是旧文件。本来的规划是github上代码都放开源的,bitbucket上放一些不开源自己的小项目,但github玩不转,代码转移到bitbucket上了。地址:bitbucket更多就不介绍了,看项目里的readme好了。

精彩继续

python版SAE图床v0.2

周四花了两个小时把SAE图床做了个简单升级,界面直接使用了SWFUpload的demo页面,比原来的界面要美观了一些。顺便增加了选中多个文件上传的功能,之前只能上传一个文件。代码不再打包放在free.fr上了,这次直接放在了github上,方便之后进行更新,即便以后不再更新也方便其他朋友继续维护。演示地址:SAE源代码地址:GitHub列一下TODOList:增加API方式上传、管理界面计划分离出来放在单独域名,通过api方式上传和管理文件增加缩略图功能BTW:看到有其他朋友开发了通过渣浪微博的发带图片微博接口上传文件,省去了豆子的消耗。但这样图片管理起来并不方便,俺拿了一份作了个演示:渣浪微博图床,但不再计划实现python版本,一则因为渣浪的pythonSDKoauth1.0版本上传的功能是不能用的,二则重复造轮子也没意义。

精彩继续

使用dnspod完美自定义使用incapsula免费CDN日本节点加速网站

前两天使用了incapsula提供的免费CDN服务,但因为本站的源服务器是部署在美国的一台VPS上,incapsula给出的CNAME机器也是位于美国的机器,按照incapsula的文档修改域名的CNAME记录后解析的IP是位于新加坡的亚马逊机器上,国内用户访问基本是绕路去美国或者欧洲,反而不如没有CDN之前。incapsula本身是有日本节点的机器的,之前搜索的一些自定义使用日本节点的教程均是等incapsula生效后直接修改域名A记录指向incapsula的日本机器IP。但这样incapsula会检测到域名没有指向正确的CNAME,而造成在incapsula管理面板无法查看它提供的一些统计及一些基本设置(如屏蔽某些恶意蜘蛛或者修改站点源服务器IP等)在dnspod修改域名设置时候发现dnspod是可以设置不同线路使用不同解析方案的功能,俺尝试设置国外线路的域名CNAME到incapsu...

精彩继续

nginx cache反代一键安装

把buyvm机器上的站点统统迁移到了另一台vps上,幸好有一些是使用了CDN,直接替换CDN反代的ip即可,有一些站点使用了dnspod的服务,改完A记录后很快也就生效了。buyvm的机器计划作为nginx前端反代使用,这样迁移站点就不用再切换域名NS记录了,直接修改buyvm的nginx即可,而且buyvm机器不再计划安装其他软件,仅作为前端反代使用。在nginx和squid直接犹豫了一下,最终选择了nginx。一则nginx本身占内存比较小,二则配置简单。nginx本身已经有cache模块支持,就没必要再引入一个不熟悉的squid了。搜了很多教程,有一些教程中nginx的cache模块配置是很旧而且过时的,比如『max_size』和『clean_time』这两个参数nginx早就已经从稳定版移除了虽然俺还不知道这两个参数有什么方法可以替代,但起码很早之前的教程已经是不大合适的。俺使用的...

精彩继续