跟牛牛老师学习python自动化的第八天

今天要讲的内容:

处理异常

 1 money = 1000
 2 num = input('Please enter a num:')
 3 try:
 4     num = float(num)
 5     res = money/num
 6 
 7 except Exception as e:#能获取到所有的异常
 8 # except ValueError as e:#单个异常,出现异常了,就走except下面的代码
 9 #     # print(e)
10     print('你出现异常了')
11     print('你输入的价格不合法。。')
12 # except ZeroDivisionError as e:#单个异常
13 #     print('除数不能为0')
14 else:#没有出现异常
15     money-=num
16     print('你的余额是%s'%money)
17 finally:#无论是否有异常都会执行
18     print('dddddd')

 封装操作redis

 1 import redis
 2 
 3 class MyRedis:
 4     def __init__(self,host,password,port=6378,db=0):
 5         self.r = redis.Redis(host=host,password=password,port=port,db=db)
 6 
 7     def op_str(self,k,v=None,ex=-1):
 8         if v:
 9             self.r.set(k,v,ex)#set
10         else:
11             res = self.r.get(k)
12             if res:
13                 return res.decode()
14 
15     def op_hash(self,name,k=None):
16         if k:#判断取单个值
17            res = self.r.hget(name,k)
18            if res:
19                return res.decode()
20         else:#取所有的值
21             res = {}
22             for k,v in self.r.hgetall(name).items():
23                 res[k.decode()]=v.decode()
24             return res

封装操作mysql

 1 import pymysql
 2 
 3 class MyDb:
 4     def __init__(self,host,password,user,db,port=3306,charset='utf8',autocommit=True):
 5         try:
 6             self.coon = pymysql.connect(host=host,password=password,
 7                                     user=user,db=db,port=port,
 8                                     charset=charset,autocommit=autocommit)
 9         except Exception as e:
10             print('数据库连接失败!错误信息是%s'%e)
11             raise Exception('数据库连接失败!错误信息是%s'%e)
12         else:
13             self.cur = self.coon.cursor(pymysql.cursors.DictCursor)
14 
15     def select_all(self,sql):
16         try:
17             self.cur.execute(sql)
18         except Exception as e:
19            res = 'sql语句错误,%s\n,错误的sql是【%s】'%(e,sql)
20            print(res)
21         else:
22             res = self.cur.fetchall()
23         return res
24     def select_one(self,sql):
25         try:
26             self.cur.execute(sql)
27         except Exception as e:
28            res = 'sql语句错误,%s\n,错误的sql是【%s】'%(e,sql)
29            print(res)
30            return res
31         else:
32             res = self.cur.fetchone()
33         return res
34 
35 
36 def other_sql(self, sql):
37     try:
38         self.cur.execute(sql)
39     except Exception as e:
40         res = 'sql语句错误,%s\n,错误的sql是【%s】' % (e, sql)
41         print(res)
42         return res
43 def close(self):
44     print('关闭了!')
45     self.cur.close()
46     self.coon.close()

抓取一个群里的qq头像

 1 import requests,pymongo,os
 2 
 3 url = "https://qun.qq.com/cgi-bin/qun_mgr/search_group_members"
 4 
 5 data = {"gc":728755825,"st":0,"end":200,"sort":0,"bkn":729730748}
 6 header = {'Cookie':'pgv_pvi=4788783104; pgv_si=s6143795200; _qpsvr_localtk=0.862307479956725; pt2gguin=o1334933924; uin=o1334933924; skey=@kGLYaQbAR; ptisp=cnc; RK=TxDF2YA1bL; ptcz=91d386bcdfa51982aaa3605162d022ecf50b82dde22714d669df3d7fe14221b0; p_uin=o1334933924; pt4_token=5-Lm7rK62Wis6IJSPFU6mlTKzxfBkEe*xNqd45Vbuyc_; p_skey=hugzXms-cMfHsaJLZI47*L3qs0y4ChTV2jLXmF2HMxw_'}
 7 
 8 res = requests.post(url=url,data=data,headers=header)
 9 mems = res.json().get("mems")#?
10 
11 client = pymongo.MongoClient(host="118.24.3.40",port=27017)
12 db = client['qq_group']
13 table = db['zjr']
14 
15 for i in mems:
16     mem = {
17         "qq":i.get("uin"),
18         "gender":i.get("g"),
19         "nick":i.get("nick"),
20         "card":i.get("card"),
21         "qage":i.get("qage")
22     }
23     if mem.get("gender") == 0:
24         mem['gender'] = ""
25     elif mem.get("gender") == 1:
26         mem['gender'] = ""
27     else:
28         mem['gender'] = "未知"
29 
30     if mem.get("card") == "":
31         mem['card'] = "没有群名片"
32 
33     table.insert_one(mem)
34     qq="http://q4.qlogo.cn/g?b=qq&nk={0}&s=140"
35     pics = requests.get(qq.format(mem.get("qq")))
36     abs_path = os.path.join()#?
37     with open(str(mem.get("qq"))+".jpg","wb") as f:
38         f.write(pics.content)

猜你喜欢

转载自www.cnblogs.com/Mezhou/p/9350338.html
今日推荐