Python库详解之网络(1)
刚刚写完Python嵌入部分的简单例子(差不多够现在用的啦~),接着看点实际的东西,如果没有这些应用的话,前面的嵌入也没有什么意义。嵌入的其他部分以后遇到再写,不必一下子把那些函数都弄懂,是吧~
OK,来看Python库中我认为最好玩的一部分,也就是Python对网页的操作。
这篇简单说下如何通过网址下载网页,前提当然是要能上网。
我这里是将网易的网页下下来保存在test.html文件中。
下载网页只需要2行代码:
#注意现在python3.1版本与以前有了很大变化,过去代码好多不能用,需要稍微修改下哦
import urllib.request
urllib.request.urlretrieve('http://www.163.com','test.html') #你们用双引号试下,我这怎么有问题?单引号和双引号在这里有区别么?
呵呵,不是觉得太简单了点,但我还是比较喜欢下面代码多点的实现方式(我没有添加异常,如果是稍微正式点的编码,请添些处理异常的代码吧):
import urllib
import urllib.request
url=urllib.request.urlopen("http://www.163.com")
file=open("test.html",'wb') #it's 'wb',not 'w'
while(1):
line=url.readline()
if len(line)==0:
break
file.write(line)
呵呵,现在是不是感觉下载网页真没意思~
OK,下篇说下如何解析我们下载下来的网页,这样下下来的网页才有用嘛~ ^_^
相关文档:
首先是下载python3,现在的最高版本是3.1.1
for linux。
我的放置路径是/home/python下放置Python-3.1.1.tgz,执行以下系列操作:
1.解压:tar zxvf Python-3.1.1.tgz----生成解压包Python-3.1.1
2.转换到Python-3.1.1路径下,执行./configure
3.make
4.make install
在rehl5中已经默认安装了python2.4,所以要做如下 ......
copy模块用于对象的拷贝操作。该模块非常简单,只提供了两个主要的方法:
copy.copy
与
copy.deepcopy
,分别表示浅复制与深复制。什么是浅复制,什么是深复制,网上有一卡车一卡车的资料,这里不作详细介绍。复制操作只对复合对象有效。用简单的例子来分别介绍这两个方法。
浅复制只复制对象本身,没有复制该对象 ......
filename=raw_input('enter file name:')
f=open(filename,'rb')
f.seek(0,0)
index=0
for i in range(0,16):
print "%3s" % hex(i) ,
print
for i in range(0,16):
print "%-3s" % "#" ,
print
while True:
temp=f.read(1)
if len(temp) == 0:
break
else:
print "%3s" % temp.encode('hex'),
......
正则表达式
具体的参考手册,这里记下一些小问题:
1、re对象的方法
match Match a regular expression pattern to the beginning of a string.
search re.search(pattern, string, flags) flags:re.I re.M re.X re.S re.L re.U
sub Substitute oc ......