易截截图软件、单文件、免安装、纯绿色、仅160KB

话说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


相关文档:

UBUNTU10.04安装stackless python运行高性能服务器

以下"#"开头是Ubuntu终端命令
1。首先安装Ubuntu10.04
参考 http://wiki.ubuntu.org.cn/
2。修改root用户密码
3。使用root登陆系统
 
4。Ubuntu默认已经安装python2.6.5
 
5。下载stackless
查看网址 http://zope.stackless.com/download/sdocument_view
# cd /usr/src
# wget http://www.sta ......

分享一个简单的python模板引擎


#coding:utf-
8
  
__author__="sdm"
  
__author_email='sdmzhu3@gmail.com'
  
  
__date__ ="$2009-8-25 21:04:13$"
  
  
''
'  
pytpl 类似
php的模板类  
  
&nbs ......

使用C语言扩展Python(二)

在上一篇中我们已经使用c语言实现了一个最简单的扩展模块,这一篇中将在其基础上进行功能的丰富。首先来考虑如何从外部的Python向C模块传递进参数,foo_bar2展示了如何向C模块传递整数,浮点数,字符串三个参数,其中"ids"指明了传入参数的数据类型。PyArg_ParseTuple负责对args进行解析,若解析失败则返回0.代码#include&n ......

关于Python正则表达式的区分大小写的问题

最近在用Python处理一些数据,数据需要存储到MySQL数据库中,采用MySQLdb来进行数据库的操作,但是被一个问题困扰了很久。在打开数据库的时候MySQLdb.connect(self.host, self.user, self.password, self.database, port=self.port)出异常,而且异常出现的位置非常奇怪。
出现在converters.py 164行
from decimal import ......

python exec和eval


exec语句用来执行储存在字符串或文件中的Python语句。例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句。下面是一个简单的例子。
>>> exec 'print "Hello World"'
Hello World
eval语句用来计算存储在字符串中的有效Python表达式。下面是一个简单的例子。
>>> ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号