月度归档:2015年11月

Python数据抓取学习笔记20151126

1、使用httplib2读取网页出现”zlib.error: Error -3 while decompressing data: incorrect header check”错误怎么解决?
大致意思是zlib错误:当解压数据时发现HTTP头信息不正确,百度了一圈一个参考做法是:找到”..httplib2__init__.py”, line 318, in _decompressContent中改为content = zlib.decompress(content, -zlib.MAX_WBITS),我没有试,既然是文件网页压缩解压失败,那我要求不压缩网页就可了,于是在请求头文件中将”Accept-Encoding”改为空或”gzip”,经实测成功,比对两次网页文件大小发现使用gzip压缩,仅仅节约了数十字节,不值得使用,建议设置为空,减少本地机cpu开销。
2、Python怎么安装第三方模块?
恨透了没有仔细学习Python操作方法,一直傻兮兮地网上寻找第三方模块,其实很简单,只需要安装Python集成的pip工具既可以随时下载更新安装的模块。windows系统的安装方法是:运行-》cmd-》”cd (你的Python安装路径)/Python27/Scripts/”-》命令:”easy_install pip”即可完成pip的安装,如果需要安装第三方模块,只需要使用命令”pip 模块名”即可安装,例如安装BeautifulSoup4则输入命令”pip install BeautifulSoup4″回车即可,安装httplib2输入命令”pip install httplib2″,真的很简单。
3、Python爬虫采集中文信息插入Mysql需要过滤和转义那些特殊符号? 继续阅读

Python 数据抓取学习笔记

1、HTTP请求模块该怎么选择?
Python自带有urllib、urllib2两个均不符合我的要求,urllib不可带header信息等,urllib2总提示错误不稳定,最终选择第三方模块httplib2,超级好用。
2、网页内容提取用什么方案?
可以使用lxml模块,beautifulsoup模块,json模块或者正则匹配。
3、使用HTTP请求超时问题怎么解决?
Python的Http请求均使用socket通信实现,通过判断socket的timeout异常即可检测HTTP请求中的异常是否是超时异常,超时时间通过”socket.setdefaulttimeout(10)”设置,切记一定要导入socket模块。
捕获超时异常案例:
from urllib2 import urlopen
import socket
slowurl =”https://www.baidu.com/”
socket.setdefaulttimeout(1)
try:
data = urlopen(slowurl)
data.read()
except socket.error:
errno, errstr = sys.exc_info()[:2]
if errno == socket.timeout:
print “There was a timeout”
else:
print “There was some other socket error”

MySQL-connector-python的安装和使用

很多人用了Python开发的MySQL-python后发现还是更喜欢MySQL自家的风格,MySQL-connector-python就是MySQL自家开发的python模块,直接到MySQL官网下载对应的系统版本即可安装使用,下载地址是:
http://dev.mysql.com/downloads/connector/python/
对应的有windows安装包和linux、MacX各安装包或源码,我用的linux下载的是这个(点我下载
在linux命令提示符下输入 :wget http://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python-2.1.3.zip
下载完成后:
unzip mysql-connector-python-2.1.3.zip
cd mysql-connector-python-2.1.3
进入到文件目录后安装:
sudo python setup.py install
进入到安装,10秒左右完成,这样就可以在python程序里正常使用”import mysql.connector as mysql”导入MySQL的connector模块了,使用也很简单。
下面的代码是一个简单查询一个数据表里数据的实例: 继续阅读

Python版IMEI码校验工具

IMEI就是移动设备国际身份码,我们知道正常的手机串码IMEI码是15位数字,由TAC(6位,型号核准号码)、FAC(2位,最后装配号)、SNR(6位,厂商自行分配的串号)和SP(1位,校验位)。校验位是由一套固定的算法计算而来,最近在自学Python,就用Python编写了一个IMEI码校验工具。完整代码如下:
#coding=utf-8

def imei(imei):
if len(imei)==14 and imei.isdecimal():
ou=0
ji=0
i=0
while i9:
ou=ou+int(str(imei_i*2)[0:1])+int(str(imei_i*2)[1:2])
else:ou=ou+imei_i*2
i+=1
jiou=str(ji+ou)
if len(jiou)>1:
jiao=jiou[len(jiou)-1:]
else:jiao=jiou
if jiao==’0′:
return ‘完整IMEI是:’+imei+jiao
else:return ‘完整IMEI是:’+imei+str(10-int(jiao))
else:return ‘IMEI填写错误,不是14位或含有非法字符!’
while True:
imei_str=input(‘请输入需要校验的IMEI:’)
print (imei(imei_str))
#print imei(imei_str)#Python3以下版本请去除注释,并把上一行注释掉

IMEI码的校验算法是:
1、将前14位中的偶数位分别乘以2,并将所有所得数字的十位和个位相加得到ou;
2、将前14位中的奇数位相加得到ji
3、将ou和ji相加得到jiou
4、取jiou的个位jiao
5、如果jiao为0则校验位为0,否则为10-jiao
刚学习python,程序写的很粗糙,请各位看官多多指点!
IMEI校验工具,点我试用就是通过js改写的该代码!

openvpn针对各个系统版本的下载列表

openvpn针对各个系统版本的下载列表:
也可以使用下列列表直接下载,直接点击鼠标右键复制快捷方式即可,下载源依然为openvpn官网:
OpenVPN-AS-Appliance-1.5.1.zip                     08-May-2013 18:51           354753987
OpenVPN-AS-Appliance-1.5.2.zip                     08-May-2013 18:52           347701349
OpenVPN-AS-Appliance-1.5.4.zip                     08-May-2013 18:53           346115612
OpenVPN-AS-Appliance-1.5.5.zip                     08-May-2013 18:48           363000237
OpenVPN-AS-Appliance-1.5.6.zip                     08-May-2013 18:50           344499564
OpenVPN-AS-Appliance-1.6.0.zip                     08-May-2013 18:40           334194816
OpenVPN-AS-Appliance-1.6.1.zip                     08-May-2013 18:52           336404214
OpenVPN-AS-Appliance-2.0.1.exe                     22-Oct-2013 20:57           188587626
OpenVPN-AS-Appliance-2.0.1.ova                     22-Oct-2013 21:01           452615680
OpenVPN-AS-Appliance-2.0.10.ova                    28-Jul-2014 23:29           466284032
OpenVPN-AS-Appliance-2.0.11.ova                    28-Dec-2014 06:56           469752320
OpenVPN-AS-Appliance-2.0.12.ova                    23-Jan-2015 05:32           414534144
OpenVPN-AS-Appliance-2.0.17.ova                    16-Apr-2015 02:05           331496960
OpenVPN-AS-Appliance-2.0.2.exe                     06-Nov-2013 21:04           188587626
OpenVPN-AS-Appliance-2.0.2.ova                     06-Nov-2013 21:00           471966720
OpenVPN-AS-Appliance-2.0.5.exe                     24-Mar-2014 23:04           154667539
OpenVPN-AS-Appliance-2.0.5.ova                     25-Mar-2014 00:08           322320384
OpenVPN-AS-Appliance-2.0.7.exe                     16-Apr-2014 06:50           155388888
OpenVPN-AS-Appliance-2.0.7.ova                     15-Apr-2014 05:50           321157120
OpenVPN-AS-Appliance-2.0.exe                       03-Oct-2013 18:49           178357089
OpenVPN-AS-Appliance-2.0.ova                       11-Oct-2013 15:52           410378752
OpenVPN-AS_1.5.1_VHD.zip                           08-May-2013 18:49           344901442
OpenVPN-AS_1.5.2_VHD.zip                           08-May-2013 18:42           338254771
OpenVPN-AS_1.5.4_VHD.zip                           08-May-2013 18:43           336860475
OpenVPN-AS_1.5.5_VHD.zip                           08-May-2013 18:47           353110586
OpenVPN-AS_1.5.6_VHD.zip                           08-May-2013 18:48           335181872
OpenVPN-AS_1.6.0_VHD.zip                           08-May-2013 18:39           324890393
OpenVPN-AS_1.6.1_VHD.zip                           08-May-2013 18:50           326958037
OpenVPN-Access-Server-Hyper-V_1.8.3.zip            08-May-2013 18:45           249812892
iptables_1.4.20-1_amd64.deb                        02-Oct-2013 05:01              368000
openvpn-as-2.0.10-CentOS5.9.i386.rpm               24-Jul-2014 19:50            25655011
openvpn-as-2.0.10-CentOS5.9.x86_64.rpm             24-Jul-2014 19:50            26122085
openvpn-as-2.0.10-CentOS6.i386.rpm                 24-Jul-2014 19:50            25720109
openvpn-as-2.0.10-CentOS6.x86_64.rpm               24-Jul-2014 19:50            26287088
openvpn-as-2.0.10-CentOS7.x86_64.rpm               24-Jul-2014 19:50            28552012
openvpn-as-2.0.10-Debian6.amd_64.deb               24-Jul-2014 19:50            26343582
openvpn-as-2.0.10-Debian6.i386.deb                 24-Jul-2014 19:50            25864128
openvpn-as-2.0.10-Debian7.amd_64.deb               24-Jul-2014 19:50            26480802
openvpn-as-2.0.10-Debian7.i386.deb                 24-Jul-2014 19:50            26332544 继续阅读

sftp的使用方法

sftp是Secure File Transfer Protocol的缩写,即安全文件传输协议,比ftp多了个s,顾名思义就是比ftp安全。
sftp在有ssh的linux版本里默认可用,使用起来比较方便,命令也很简单,如果是在linux系统直接输入一下命令就可以连接远程sftp服务:
sftp -P [端口号,默认22] user[用户名]@host[主机域名或IP]
提示“The authenticity of host ‘[*******.com]:22 ([103.17.42.**]:22)’ can’t be established.
ECDSA key fingerprint is *****************************************.
Are you sure you want to continue connecting (yes/no)? ”
直接输入yes回车即可,然后提示输入密码,这里的用户名和密码和ssh使用的用户名密码一样。
sftp可以使用的命令还是很多的:
pwd:显示当前所在目录
cd:更改目录 继续阅读

最新阿里云推荐码有效期至2015年11月30日

最新阿里云推荐码一枚有效期至2015年11月30日:KJQT21
阿里云推荐码活动是一个三赢的活动,对使用者来说可以打九折,对推广者来说可以收获返利,而阿里云产品也会因此得到推广。

web2py远程管理开发的方法

web2py有一套禁止远程管理开发的安全机制,验证服务器IP地址和客户端IP地址,如果不是在服务器端打开Design页面则提示“管理因不安全通道而关闭”,无法进行正常的远程管理开发。其实web2py多数都部署在远程Linux主机,也多没有桌面系统,为了完成远程访问的目的,我的解决方法是使用SSH代理,SSH代理可以使得客户端主机像服务器本身一样来访问web2py,而且通过安全协议通信,也就不会出现访问限制和安全问题了。
需要用到的工具是一个SSH客户端,我在windows端使用Putty,请到官方推荐地址下载新版,不要使用0.63版的,0.63版有bug,会导致在使用过程中出现“Server sent disconnect message type 2(protocol error):”Received oclose for nonexistent channel **********””的错误,并终止连接。
可以点击下载0.64版
Putty是绿色版的,下载后直接双击运行即可。
1、双击打开PuTTY,按照下图输入服务器IP和SSH设置的端口,SSH默认端口是22:
PuTTY实现SSH代理1 继续阅读

linux下运行web2py的简单配置

linux命令提示符下输入命令”sudo python web2py.py -h”可以查看web2py的帮助信息,如下:
Usage: python web2py.py

web2py Web Framework startup script. ATTENTION: unless a password is specified
(-a ‘passwd’) web2py will attempt to run a GUI. In this case command line
options are ignored.

Options:
–version show program’s version number and exit
-h, –help show this help message and exit
-i IP, –ip=IP IP address of the server (e.g., 127.0.0.1 or ::1);
Note: This value is ignored when using the
‘interfaces’ option.
-p PORT, –port=PORT port of server (8000)
-G GAE, –GAE=GAE ‘-G configure’ will create app.yaml and gaehandler.py
-a PASSWORD, –password=PASSWORD 继续阅读

再见,喀嚓鱼!再见,在线冲印!

喀嚓鱼退出中国冲印市场
使用喀嚓鱼有几大年了,虽然不是经常只是偶尔,可是那个青葱岁月里,她还是记录着我和现在妻子的点点滴滴,那会彻夜在线制作相册的冲动,等待收货的激动,和她分享载着满满甜蜜相册的喜悦,记忆尤新,感情满满。可就在11月1日,喀嚓鱼离我们而去,主页上“由于公司业务调整,喀嚓鱼已经停止在中国区的所有服务。”一行字那么清晰那么模糊,怀旧的人总不忍经历分别,可还是不能左右,再见,喀嚓鱼!再见,在线冲印!
那句话叫“不会再爱了!”