def func(): # 找到第一篇帖子内容 # 多玩帖子内需要特别判断的函数,比如是否存在ID关键字,以及是否存在图片. def duowanfunc(): girlurl=rq_girl.get() r=requests.get(girlurl) soup=BeautifulSoup(r.text,"html.parser") # girlpage=soup.find('td',id=re.compile('postmessage.*'),attrs={'class':'t_f'}) girlpage=soup.find('div',attrs={'class':'t_fsz'}) if not girlpage: return IDkeys=['ID','id'] # 提取妹纸id p=re.compile('(?:id|ID)[\s|:|:|;|;]*(\S+)\s*') girlpagetext=girlpage.text nickname=p.findall(girlpagetext) # 判断是否存在id关键字 if len(nickname)<1: return False # 判断有没有照片 pics=girlpage.find_all('img',zoomfile=True) if len(pics)<1: return False # nickname=nickname[0] # 保存图片url if len(pics)>5: pics=pics[:5] piclist=[utils.quote_url(pic.attrs['zoomfile']) for pic in pics] return {'nickname':nickname,'picurls':piclist} duowaninfo=duowanfunc() if not duowaninfo: return # 如果存在多个ID,一次检查,比较 id_info={'fighting':-1} names=duowaninfo['nickname'] for name in names: if len(name.encode('gbk'))<4 or len(name.encode('gbk'))>16: # print('=============ID 格式异常========') return tmpinfo=utils.checkid(name) if tmpinfo: if tmpinfo['fighting']>id_info['fighting']: id_info=tmpinfo if id_info['fighting']==-1: return else: print(id_info) id_info['picurls']=duowaninfo['picurls'] # pickle也可以作序列化 rq_info.put(json.dumps(id_info,ensure_ascii=False))
def addstudent(filepath): print("输入学生信息,其中ID为四位数字:") name = input("name:") id = input("id:") while not utils.checkid(id): id = input("input the right style:") grade = input("grade:") while not utils.checkgrade(grade): grade = input("input the right grade:") print("add succesful!") print("name:%s, id:%s, grade:%s" % (name, id, grade)) instruct = input('save?(y/n):') if instruct == 'y': with open(filepath, 'a') as fi: fi.write(name + '\t' + id + '\t' + grade + '\n') print("save succesful!")
def func(): girlid = rq_girl.get().decode() girlid = json.loads(girlid) idinfo_15w = utils.checkid(girlid['nickname']) if not idinfo_15w: return overinfo = utils.overdate(idinfo_15w['player']) if not overinfo: return girlinfo = {} girlinfo['picurls'] = [girlid['picurl']] girlinfo['nickname'] = girlid['nickname'] girlinfo.update(idinfo_15w) girlinfo.update(overinfo) print(girlinfo) # pickle也可以作序列化 rq_info.put(json.dumps(girlinfo, ensure_ascii=False))
def func(): girlid=rq_girl.get().decode() girlid=json.loads(girlid) idinfo_15w= utils.checkid(girlid['nickname']) if not idinfo_15w: return overinfo=utils.overdate(idinfo_15w['player']) if not overinfo: return girlinfo={} girlinfo['picurls']=[girlid['picurl']] girlinfo['nickname']=girlid['nickname'] girlinfo.update(idinfo_15w) girlinfo.update(overinfo) print(girlinfo) # pickle也可以作序列化 rq_info.put(json.dumps(girlinfo,ensure_ascii=False))