话说Python(七)从Go...ogle说起
	
    
    
	今天一上课,大牛老师就给大家出了一道题:
编程:请从字符串“goOoOogle”中找出以“O”开头,并以“O”结束的部分。
“这还不简单,看我的”小菜不一会儿就给出了答案:
>>> s="goOoOogle"
>>> s.find("O")
2
>>> s.find("O",3)
4
>>> s[2:5]
'OoO'
>>> 
 
 
“小菜啊,你咋这么傻呢!”小白不禁在心里叹息,“老师出这道题不是明摆着考我们正则表达式嘛!”
果然不出小白的预料,大牛老师又出了一道题:
请从“goOoOogle”中再找出连续的“o”,不分大小写。
“不就是循环判断嘛,继续find”小菜又开始了自己的算法之旅。
“小白,你来回答一下”大牛看到小白好像已经完成,便让他回答一下。
“这还不简单吗?用正则匹配一下不就行了”小白摸了摸后脑勺,“至于程序嘛——还没写,嘿嘿。”
先看看我们的“加强版”爬虫:
import chardet,urllib.request,urllib.parse,re
from sparrow.http.response import Response
class Crawler(object):
    def __init__(self,reqQueue=None,resQueue=None):       #两个队列,一个用于提取网页请求,一个存放抓取的结果
        self.reqQueue=reqQueue
        self.resQueue=resQueue      
    def getData(self,request):            #获得网页数据和服务器返回的编码
        response=urllib.request.urlopen(request)
        info=Response(response)
        encoding=info.charset
        data=response.read() 
        return (encoding,data)
    def getLinks(self,url,content):      #解析网页内容,获得所有链接
        rule_link=re.compile(r"(?i)<a\s+href=(?P<link>.+?)[\s>]") #正则表达式
        links=rule_link.findall(content)
        norLinks=[]
        for i,link in enumerate(links):  #将不完全的链接(通常为站内链接)补充完全
            link=link.strip("\"\'")     #过滤引号
            us=urllib.parse.urlsplit(link)
            if(us.scheme==''):
                link=urllib.parse.urljoin(url,link)
            norLinks.append(link)
        return norLinks
    
    def getEnco
    
     
	
	
    
    
	相关文档:
        
    
    python cookbook  
 Recipe 2.5. Counting Lines in a File
 ,
     今日发现一个新函数
 enumerate
 。一般情况下对一个列表或数组既要遍历索引又要遍历元素时,会这样写:
 
for
 i
 in
 range
 (0
,
len
(list
)):
 
 &n ......
	
    
        
    
    全文来自:IT工程技术网 http://www.systhinker.com/html/91/n-11591.html
昨天和飞天舞者讨论静态类型语言和动态类型语言优劣比较的时候,说到Python没有重载机制的问题。
后来想想挺有意思的,把思考的经过记录下来,欢迎拍砖。
重载(overload)和覆盖(override),在C++,Java,C#等静态类型语言类型语言中,这两个 ......
	
    
        
    
    
#coding:utf-
8
  
__author__="sdm"
  
__author_email='sdmzhu3@gmail.com'
  
  
__date__ ="$2009-8-25 21:04:13$"
  
  
''
'  
pytpl 类似
php的模板类  
  
&nbs ......
	
    
        
    
    
eval(str [,globals [,locals ]])函数将字符串str当成有效Python表达式来求值,并返回计算结果。
同样地, exec语句将字符串str当成有效Python代码来执行.提供给exec的代码的名称空间和exec语句的名称空间相同.
最后,execfile(filename [,globals [,locals ]])函数可以用来执行一个文件,看下面的例子:
>>> ev ......