存档

‘Python’ 分类的存档

    IIS支持Python,这是一个多么令人心动的尝试啊。今天我就实现了IIS支持Python。
   环境IIS6 + Python2.5,其他版本都差不多。
   新建Web服务扩展,py,要求的文件填写C:\Python25\python.exe %s %s。网站>属性>主目录配置>映射>添加。扩展名:.py,可执行文件填写C:\Python25\python.exe %s %s。确定,怎么出错?改成”C:\Python25\python.exe”  %s %s,哈哈。可以了,测试一下。

print (‘Status: 200 OK’)
print (‘Content-Type: text/html’)
print (”)
print (‘<h1>Hello, Python</h1>’)

浏览器访问一下,正常,哈哈哈。。。成功了。

六 25th, 2010 | Filed under Python, Share(分享)
标签: ,

一直想做一个自动读取RSS,自动更新的站。今晚正好没有事,先写个Demo。
临时先保存到文本文件中。顺便复习一下Python。
用到了MD5,XML.DOM,URllib,OS库,都是默认的。
直接插代码吧。

import sys
#coding=gb2312
reload(sys)
sys.setdefaultencoding(‘utf-8′)
import md5
import os
import urllib
import xml.dom.minidom as xxs

#Config
tmpPath=’E:/Else/rss-engins/’

#FileName2Md5
def md5str(t):
h=md5.new()
h.update(t)
return str(h.hexdigest())

#FileSystem
def saveFile(t,c):
f=’data/’+md5str(t)+’.txt’
if os.path.isfile(f):
return
fi=open(tmpPath+’index.txt’,'a’)
fi.writelines(t+’\n’)
fg=open(tmpPath+f,’w')
fg.writelines(c)

#RSS
def saveRss(f,c,encoding):
fp=open(f,’w')
if encoding==’gb2312′:
c=c.decode(‘gb2312′).encode(‘utf-8′)
c=c.replace(‘encoding=”gb2312″‘,’encoding=”utf-8″‘)
fp.writelines(c)
fp.close()
return f
def getRss(url):
ul=urllib.urlopen(url)
t=ul.read()
ul.close()
return t
def rssMain(url,encoding):
f=tmpPath+’xml/’+md5str(url)+’.xml’
if os.path.isfile(f):
return “isok”
return saveRss(f,getRss(url),encoding)

#getInfo
def getRssInfo(url,encoding):
t=rssMain(url,encoding)
if t==’isok’:
print ‘该路径已经采集过了。’
return
t=xxs.parse(t)
ri=t.getElementsByTagName(“channel”)[0].getElementsByTagName(“item”)
for item in ri:
title=str(item.getElementsByTagName(“title”)[0].childNodes[0].data)
content=str(item.getElementsByTagName(“description”)[0].childNodes[0].data)
print ‘保存文章(‘+title+’)中…’
saveFile(title,content)

#处理
def BaiduHi(RS):
for rs in RS:
print ‘加载用户:’+rs+’(http://hi.baidu.com/’+rs+’/rss)…’
getRssInfo(r’http://hi.baidu.com/’+rs+’/rss’,'gb2312′)
print ‘用户:’+rs+’处理完毕。\n’

def SohuBlog(RS):
for rs in RS:
print ‘加载用户:’+rs+’(http://’+rs+’.blog.sohu.com/rss)…’
getRssInfo(r’http://’+rs+’.blog.sohu.com/rss’,'utf-8′)
print ‘用户:’+rs+’处理完毕。\n’

#RSS服务器列表
RssServer=['mqycn','yilin','loveinmyhome','guojing021','900ip','037123']
BaiduHi(RssServer)

RssServer=['appler969','saber-bing','02040229','seahai','satanqueen','douzwang']
SohuBlog(RssServer)

[...]

十二 23rd, 2009 | Filed under Products(作品), Python, Thinks(想法)

思考了很久。准备把Python作为主要语言。
ASP\PHP:仅能用于WEB方便,如果做为其他方面,比如客户端开发,不现实。ASP模板引擎基本没有,而且不能根据条件引用不同的脚本,效率太低。PHP则函数库太乱,应用方便不是很多。
Python:包括嵌入式,PC程序,WEB都可以做,有成熟的模板引擎。有社区的支持,Google,豆瓣都能找到Python的身影。
还有一个原因是各个平台都支持了Python。Linux,Unix,Mac系统默认安装Python,塞班手机S60,Winows PPC,Windows PC都可以通过安装软件支持,基本上所有平台都能运行Python,有点像Java哦。
当然。这只是一方面,最近两三年的目标是垃圾站,所以,采集也是一个很重要的功能,用火车头之类的毕竟不是很方便,如果用python,效率很高。方便定制。当然现在技术还是很菜,我绝对一个星期必须写出两个Python小程序。用于练手,就像以前学习其他语言一样,孰能生巧。
今天看了一下urllib函数库,和正则表达式方面的,要联系采集,这两个还是很重要的。

import urllib2
import re

def Key(key):
f=urllib2.urlopen(‘http://www.baidu.com/s?wd=’+key);
t=f.read();
p=re.findall(r’<td class=f><a[^>]+href=”([^"]+)”‘,t);
for u in p:
getTitle(u);
return;

def getTitle(u):
k=urllib2.urlopen(u);
x=k.read();
n=re.search(r”,x);
if n:
print ‘\n\n\nUrl:’+u;
print ‘Title:’+n.group(1);
return;

Key(“无线上网卡”);

十一 2nd, 2009 | Filed under Python