初学python,一些总结

来源:互联网 发布:开票软件服务费抵扣 编辑:程序博客网 时间:2024/05/16 04:42

最近偷懒学了下python ,做了两个小程序,纯属练手,今天来总结一下。

第一个程序是类似于网页爬虫,自动登录教务系统批量抓取学生信息。

第二个程序是利用腾讯微博远程关机,通过抓取腾讯微博获取关机指令来关机。

记录下这次学到(声明:许多东西都是参考过有的甚至直接copy网上的代码,未能一一附上出处请见谅):

MySQLdb模块:用来访问mysql数据库

con = MySQLdb.connect(db="test",user='',password='',charset="utf8")#获得一个连接对象,连接字符串中charset属性设置字符集与数据库一致,搭建mysql时默认的字符集是拉丁什么的,还要在数据库中设置test数据库的字符集为uft8为了显示中文
cur=con.cursor()#通过这个方法得到一个游标对象,一切操作通过游标进行
cur.execute(sqlstring)#执行一句SQL语句,不带参数的,返回受影响行数
那么如果要带参数呢,例如插入数据:

cur.execute(sqlstring,data)#这里的data似乎很灵活,用列表元组都可以,列表没有测试过,我用的元组

见代码(部分代码取自点击打开链接):

 value=[1,'hi rollen']    cur.execute('insert into test values(%s,%s)',value)


这个插入的数据进行了处理,当时只想到了这种方法

sql = "insert into personinfo  values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
        data = ()
        for line in info:
        #元组添加元素时只能和元组用‘+’连接,并且不加‘,’会被当作字符串而非元组
                data = data +(line,)

        #插入多个数据时要将数据放在一个元组里作为参数
        if(cur.execute(sql,data)>0):
                #count2 = count2 +1
                print 'insert successfully...'


操作完数据库后记得关闭:

cur.close()
con.commit()
con.close()

关闭的顺序是先关游标,再关连接

urllib2模块,urllib模块:

recv = urllib2.urlopen(url)#url='http://www.baidu.com'用于请求一个网址,会返回关于这个网址的一些东西,其中

recv.read()#是返回的HTML网页

recv.geturl()#是返回的跳转地址


postheader = {'User-Agent' : 'Mozilla/5.0 (Windows NT 5.1; WOW64; rv:14.0) Gecko/20100101 Firefox/14.0.1',
                       'Referer' : posturl}#构造的请求头数据,其中有的页面会对请求头中Referer 这个做验证,要求它为之前的地址,那么这时如果它为空可能访问不了目的网页

postdata = urllib.urlopen(data)#用来对字典型数据集data中的数据进行编码,以便发送到服务器,这个数据是发往服务器的数据

send = urllib2.request(posturl,postdata,postheader)#向posturl发送携带编码好的数据postdata并且请求头是postheader

response = urllib2.urlopen(send)#获取服务器返回的对象

re模块:用于匹配正则表达式

match = re.search('A[0-9]{5}',string)#在string中匹配一个大写A紧接着五个相连的数字的字符串

,匹配到成功后返回的对象不为空,否则返回的对象为空

匹配成功后得到的字符串是:A24531;   即一个大写A后面接五个数字,任何符合这个模式的字符串都会被匹配到存到match中,使用match.group()来遍历match得到匹配到的字符串


time模块:它的time.sleep(seconds)#让程序睡眠一段时间,参数为秒数,若为0.1则为100毫秒

platform模块:

platform.platform()#显示当前系统的详细信息

platform.system()#显示当前系统的简要信息,如‘Windows’

random模块:

random.randint(1,4)#伪随机获取1到4之间的整数

os模块:

os.system('halt')#执行系统命令,这个是在linux下关机的命令

os.system('shutdown.exe -f -s -t 20')#这是在windows下调用命令关机


还有内建的函数(所谓内建函数就是不用引入模块就可以直接使用的函数):

file = open(filename,openmode)#打开指定路径名称的文件,以‘w’(可写模式,清空覆盖旧文件),‘r’(可读模式),‘+’可读可写模式,‘a’(添加模式,在原文件末尾添加)等模式读写文件,用完文件后一定要记得fiel.close()关闭掉

lines = file.readlines()#读取多行

lines = file.readline()#读取一行

write(string)#写入字符串,没有writeline()

异常捕获:

try:

.........

exception Exception,ex:

print ex;


0 0