文章分类 -  Python

Ubuntu下安装PyV8
摘要:折腾一下午终于弄好PyV8引擎,解析JS方便多了.关键: PyV8依赖于Boost,所以安装前先确定你的Linux有没有Boost(就因为这个折腾一下午,官方首页也没说,找了好久)Ubuntu下安装sudo apt-get install libboost-all-devsudo apt-get i... 阅读全文
posted @ 2014-11-29 17:27 vingi_苍月 阅读(4382) 评论(0) 推荐(0)
python 关于Gzip解压
摘要:近日发现原来查询Yahoo排名的一支python程式不能正常运行了,Debug后发现一个提示:WARNING:Some characters could not be decoded, and were replaced with REPLACEMENT CHARACTER.查了Stackoverflow发现因为对方启用了Gzip压缩.使我们抓下来的页面内容需经过gzip.GzipFile方法解出来才能用.判断是否gzip的方法,只要:1 page = urllib2.urlopen(req)2 print page.info().get('Content-Encoding') 阅读全文
posted @ 2014-02-26 23:02 vingi_苍月 阅读(3484) 评论(0) 推荐(0)
Proxy Caching 设置方法(转)
摘要:在使用Google Page Speed查看网站页面载入情况时,看到一个警告提示。Leverage Proxy caching当然基于浏览器的缓存机制已经利用起来了,就是添加了文件的Expires时间。比如CSS,JS之类的文件,我就给设置为60天。但是这里提到的Proxy caching,我倒是一直没有注意到。查看了相关的文档,所谓proxy cacheing,就是一种公共缓存,用于静态资源,允许浏览器从最近的代理服务器上,而不是从远程的原始服务器,下载这些静态资源。这些代理服务器,通常而言就是有ISP,接入服务商所提供的。这样的代理服务器缓存可以让通过同一ISP接入服务的用户共享这些静态资 阅读全文
posted @ 2013-10-09 00:03 vingi_苍月 阅读(288) 评论(0) 推荐(0)
python try语句如何打印错误行(含execfile)-- 转
摘要:打印当前.py文件错误行:import systry: a = [1,2] print a[3]except: s=sys.exc_info() print "Error '%s' happened on line %d" % (s[1],s[2].tb_lineno)打印execfile的打印错误行:try: execfile("tprint.py")except Exception, info: #print info[1] print "Error '%s' happened on line %d" 阅读全文
posted @ 2013-04-29 00:17 vingi_苍月 阅读(2521) 评论(0) 推荐(0)
Python手动生成pyc文件
摘要:pyc是python的二进制编译文件pyc文件比py文件拥有更快的装载速度,但是执行速度没有区别。但是对于程序员来说,转换为pyc文件最大的好处是可以隐藏源代码。命令为python -c "import compileall; compileall.compile_dir('py文件存放目录的路径')"该命令可以为一个目录下的py文件生成pyc文件(包含子目录)例如: python -c "import compileall; compileall.compile_dir('/home/vingi/Ubuntu One/PythonFirs 阅读全文
posted @ 2013-04-16 00:51 vingi_苍月 阅读(607) 评论(0) 推荐(0)
指定ubuntu下的Python的运行版本(转)
摘要:问题描述:Ubuntu12中默认就自带了python的2.7版本,我自己安装了一个python3.2的版本,可是如果你不设置环境变量,那么在终端中运行的python都是系统默认的版本,这样就会导致3.2的程序在终端下无法运行,没有办法必须要将默认的python版本换到3.2.问题分析:其实在linux系统中多个python版本是可以共存的,只不过在终端中运行的时候,输入 python2.7 或者 python3.2 就能进入不同的版本了,而且在你的*.py文件中可以用 #!/usr/bin/python 来指定程序的解释器版本,不过这样使用起来有些不方便,所以就把/usr/bin/python 阅读全文
posted @ 2013-04-02 23:26 vingi_苍月 阅读(1857) 评论(0) 推荐(0)
python发 gmail邮件带附件(转)
摘要:# -*- coding: utf-8 -*-import osimport smtplibimport mimetypesfrom email.MIMEMultipart import MIMEMultipartfrom email.MIMEBase import MIMEBasefrom email.MIMEText import MIMETextfrom email.MIMEAudio import MIMEAudiofrom email.MIMEImage import MIMEImagefrom email.Encoders import encode_base64 def send 阅读全文
posted @ 2013-01-07 16:21 vingi_苍月 阅读(630) 评论(0) 推荐(0)
Python 采集中文乱码问题解决方案
摘要:近几日遇到采集某网页的时候大部分网页OK,少部分网页出现乱码的问题,调试了几日,终于发现了是含有一些非法字符造成的..特此记录1. 在正常情况下..可以用 import chardet thischarset = chardet.detect(strs)["encoding"] 来获取该文件或页面的编码方式 或直接抓取页面的charset = xxxx 来获取2. 遇到内容中有特殊字符时指定的编码一样会造成乱码..即内容中非法字符造成的,可以采用编码忽略非法字符的方式来处理. strs = strs.decode("UTF-8","ignore 阅读全文
posted @ 2012-12-18 00:29 vingi_苍月 阅读(357) 评论(0) 推荐(0)
Python 抓取页面信息(使用VPN,COOKIES等)
摘要:Python 抓取页面信息(使用VPN,COOKIES等)PAT的代码提交历史列表只有已登录用户才可查看,而且只能查看自己提交的代码。所以要实现代码的抓取,首先要过了登录一关,目测PAT采用的是cookie方式进行验证,所以需要用到cookielib。实验室上外网要用VPN,需用到urllib2的ProxyHandler。初始化代码如下:帮助12345678def__init__(self,userName,password):self.userName=userNameself.password=password#需要代理的将下面语句的注释去掉,提供代理服务器地址、端口、帐号、密码。#pro 阅读全文
posted @ 2012-10-31 09:11 vingi_苍月 阅读(3667) 评论(0) 推荐(0)
pymssql的安装记录(Linux)
摘要:pymssql安装需要以下几个包:Ubuntu先更新源,以保持最新sudo apt-get update然后再安装FreeTDSsudo apt-get install FreeTDS-devsudo apt-get install FreeTDS-bin(不知道是哪个,所以二个都装了)1、FreeTDS2、Cython3、setuptools其中FreeTDS的安装参数配置:1、./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld --e 阅读全文
posted @ 2012-10-21 22:40 vingi_苍月 阅读(3957) 评论(0) 推荐(0)
How to install Python-tesseract in Ubuntu
摘要:查询:https://code.google.com/p/python-tesseract/wiki/HowToCompilePythonTesseract以下资料为过时资料...仅供参考How to install deb version of Python-tesseract in Ubuntu(Precise)wget http://python-tesseract.googlecode.com/files/python-tesseract_0.7-1.4_amd64.debwget http://python-tesseract.googlecode.com/files/python- 阅读全文
posted @ 2012-10-21 22:40 vingi_苍月 阅读(1400) 评论(0) 推荐(0)
Python中threading模块的join函数
摘要:Join的作用是众所周知的,阻塞进程直到线程执行完毕。通用的做法是我们启动一批线程,最后join这些线程结束,例如:for i in range(10):t = ThreadTest(i)thread_arr.append(t)for i in range(10):thread_arr[i].start()for i in range(10):thread_arr[i].join()此处join的原理就是依次检验线程池中的线程是否结束,没有结束就阻塞直到线程结束,如果结束则跳转执行下一个线程的join函数。而py的join函数还有一个特殊的功能就是可以设置超时,如下:Thread.join([ 阅读全文
posted @ 2012-08-26 22:15 vingi_苍月 阅读(14699) 评论(0) 推荐(0)
用python爬虫抓站的一些技巧总结(转)
摘要:学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自动收邮件的脚本,写过简单的验证码识别的脚本,本来想写google music的抓取脚本的,结果有了强大的gmbox,也就不用写了。这些脚本有一个共性,都是和web相关的,总要用到获取链接的一些方法,再加上simplecd这个半爬虫半网站的项目,累积不少爬虫抓站的经验,在此总结一下,那么以后做东西也就不用重复劳动了。1.最基本的抓站import urllib2 content = urllib2.urlopen('http://XXXX'). 阅读全文
posted @ 2012-08-24 00:54 vingi_苍月 阅读(255) 评论(0) 推荐(0)
Python字符串操作
摘要:1.复制字符串#strcpy(sStr1,sStr2) sStr1 = 'strcpy' sStr2 = sStr1 sStr1 = 'strcpy2' print sStr22.连接字符串#strcat(sStr1,sStr2) sStr1 = 'strcat' sStr2 = 'append' sStr1 += sStr2 print sStr13.查找字符#strchr(sStr1,sStr2) sStr1 = 'strchr' sStr2 = 'r' nPos = sStr1.index(s 阅读全文
posted @ 2012-08-22 16:41 vingi_苍月 阅读(208) 评论(0) 推荐(0)
Python logging 日志记录
摘要:许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪。在.NET平台中,有非常著名的第三方开源日志组件log4net,c++中,有人们熟悉的log4cpp,而在python中,我们不需要第三方的日志组件,因为它已经为我们提供了简单易用、且功能强大的日志模块:logging。logging模块支持将日志信息保存到不同的目标域中,如:保存到日志文件中;以邮件的形式发送日志信息;以http get或post的方式提交日志到web服务器;以windows事件的形式记录等等。这些日志保存方式可以组合使用,每种方式可以设置自己的日志级别以及日志格式。日志.. 阅读全文
posted @ 2012-08-22 16:26 vingi_苍月 阅读(345) 评论(0) 推荐(0)
Python字符串的encode与decode研究心得乱码问题解决方法(转)
摘要:为什么会报错“UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)”?本文就来研究一下这个问题。字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb23 阅读全文
posted @ 2012-08-14 13:19 vingi_苍月 阅读(5329) 评论(0) 推荐(0)