1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 爬虫抓取天气预报 定时发送给指定微信好友 自动回复

爬虫抓取天气预报 定时发送给指定微信好友 自动回复

时间:2024-03-18 04:08:17

相关推荐

爬虫抓取天气预报 定时发送给指定微信好友 自动回复

效果展示

打包成exe文件之后的效果 选择城市选择好友(可以对群组发送消息,群组需要先添加到微信通讯录中)选择发送天气预报的频率选择开启自动回复功能

功能实现思路

1、爬取天气信息

天气信息获取网站:中国天气网 / 网站后面拼接上weather/{city_code}.shtml,可以获取到指定城市的天气情况(西安 天气ID:101110101)城市天气ID获取,自己百度查找,本篇博客代码内部也有西安的天气页面完整链接:/weather/101110101.shtml

获取到页面之后,通过xpath获取需要的天气内容(使用xpath时尽量用标签的ID获取需要的信息,防止网站样式变化,影响获取值,需要频繁修改爬虫)将爬虫获取到天气信息,组装成字符串,方便微信发送

二、微信发送信息

应用模块wxpy,python操作微信的模块 安装方式:pip install wxpy实例化对象,扫描登录给指定好友或者群组发送天气信息对好友或者群组设置自动回复(使用图灵机器人自动回复)

三、tkinter模块添加GUI图形化界面

tkinter模块使用详细资料自己百度查询,这里就不多叙述

四、打包exe文件

pyinstaller模块 打包详解打包完成成品文件 百度网盘链接:/s/1DcY1293t1kOQbm7qom9PiQ提取码:ffly

话不多说上代码

# -*- coding: utf-8 -*-# @Time : /3/22 21:53# @Author : cdfrom tkinter import ttkimport tkinter as tkimport requestsfrom lxml import etreefrom wxpy import *# 这里可以把天气ID字典放到别的文件中引入,这个随便都可以weatherCode = {'北京': '101010100', '海淀': '101010200', '朝阳': '101071201', '顺义': '101010400', '怀柔': '101010500','通州': '101010600', '昌平': '101010700', '延庆': '101010800', '丰台': '101010900', '石景山': '101011000','大兴': '101011100', '房山': '101011200', '密云': '101011300', '门头沟': '101011400', '平谷': '101011500','上海': '10100', '闵行': '10100', '宝山': '101020300', '嘉定': '101020500', '浦东南汇': '101020600','金山': '101020700', '青浦': '101020800', '松江': '101020900', '奉贤': '101021000', '崇明': '101021100','徐家汇': '101021200', '浦东': '101021300', '天津': '101030100', '武清': '101030200', '宝坻': '101030300','东丽': '101030400', '西青': '101030500', '北辰': '101030600', '宁河': '101030700', '汉沽': '101030800','静海': '101030900', '津南': '101031000', '塘沽': '101031100', '大港': '101031200', '蓟县': '101031400','重庆': '101040100', '永川': '101040200', '合川': '101040300', '南川': '101040400', '江津': '101040500','万盛': '101040600', '渝北': '101040700', '北碚': '101040800', '巴南': '101040900', '长寿': '101041000','黔江': '101041100', '万州': '101041300', '涪陵': '101041400', '开县': '101041500', '城口': '101041600','云阳': '101041700', '巫溪': '101041800', '奉节': '101041900', '巫山': '101042000', '潼南': '101042100','垫江': '101042200', '梁平': '101042300', '忠县': '101042400', '石柱': '101042500', '大足': '101042600','荣昌': '101042700', '铜梁': '101042800', '璧山': '101042900', '丰都': '101043000', '武隆': '101043100','彭水': '101043200', '綦江': '101043300', '酉阳': '101043400', '秀山': '101043600', '哈尔滨': '101050101','双城': '101050102', '呼兰': '101050103', '阿城': '101050104', '宾县': '101050105', '依兰': '101050106','巴彦': '101050107', '通河': '101050108', '方正': '101050109', '延寿': '101050110', '尚志': '101050111','五常': '101050112', '木兰': '101050113', '齐齐哈尔': '101050201', '讷河': '101050202', '龙江': '101050203','甘南': '101050204', '富裕': '101050205', '依安': '101050206', '拜泉': '101050207', '克山': '101050208','克东': '101050209', '泰来': '101050210', '牡丹江': '101050301', '海林': '101050302', '穆棱': '101050303','林口': '101050304', '绥芬河': '101050305', '宁安': '101050306', '东宁': '101050307', '佳木斯': '101050401','汤原': '101050402', '抚远': '101050403', '桦川': '101050404', '桦南': '101050405', '同江': '101050406','富锦': '101050407', '绥化': '101050501', '肇东': '101050502', '安达': '101050503', '海伦': '101050504','明水': '101050505', '望奎': '101050506', '兰西': '101050507', '青冈': '101050508', '庆安': '101050509','绥棱': '101050510', '黑河': '101050601', '嫩江': '101050602', '孙吴': '101050603', '逊克': '101050604','五大连池': '101050605', '北安': '101050606', '大兴安岭': '101050701', '塔河': '101050702', '漠河': '101050703','呼玛': '101050704', '呼中': '101050705', '新林': '101050706', '加格达奇': '101050708', '伊春': '101050801','乌伊岭': '101050802', '五营': '101050803', '铁力': '101050804', '嘉荫': '101050805', '大庆': '101050901','林甸': '101050902', '肇州': '101050903', '肇源': '101050904', '杜尔伯特': '101050905', '七台河': '101051002','勃利': '101051003', '鸡西': '101051101', '虎林': '101051102', '密山': '101051103', '鸡东': '101051104','鹤岗': '101051201', '绥滨': '101051202', '萝北': '101051203', '双鸭山': '101051301', '集贤': '101051302','宝清': '101051303', '饶河': '101051304', '友谊': '101051305', '长春': '101060101', '农安': '101060102','德惠': '101060103', '九台': '101060104', '榆树': '101060105', '双阳': '101060106', '吉林': '101060201','舒兰': '101060202', '永吉': '101060203', '蛟河': '101060204', '磐石': '101060205', '桦甸': '101060206','延吉': '101060301', '敦化': '101060302', '安图': '101060303', '汪清': '101060304', '和龙': '101060305','龙井': '101060307', '珲春': '101060308', '图们': '101060309', '四平': '101060401', '双辽': '101060402','梨树': '101060403', '公主岭': '101060404', '伊通': '101060405', '通化': '101060501', '梅河口': '101060502','柳河': '101060503', '辉南': '101060504', '集安': '101060505', '通化县': '101060506', '白城': '101060601','洮南': '101060602', '大安': '101060603', '镇赉': '101060604', '通榆': '101060605', '辽源': '101060701','东丰': '101060702', '东辽': '101060703', '松原': '101060801', '乾安': '101060802', '前郭': '101060803','长岭': '101060804', '扶余': '101060805', '白山': '101060901', '靖宇': '101060902', '临江': '101060903','东岗': '101060904', '长白': '101060905', '抚松': '101060906', '江源': '101060907', '沈阳': '101070101','辽中': '101070103', '康平': '101070104', '法库': '101070105', '新民': '101070106', '大连': '101070201','瓦房店': '101070202', '金州': '101070203', '普兰店': '101070204', '旅顺': '101070205', '长海': '101070206','庄河': '101070207', '鞍山': '101070301', '台安': '101070302', '岫岩': '101070303', '海城': '101070304','抚顺': '101070401', '新宾': '101070402', '清原': '101070403', '章党': '101070404', '本溪': '101070501','本溪县': '101070502', '桓仁': '101070504', '丹东': '101070601', '凤城': '101070602', '宽甸': '101070603','东港': '101070604', '锦州': '101070701', '凌海': '101070702', '义县': '101070704', '黑山': '101070705','北镇': '101070706', '营口': '101070801', '大石桥': '101070802', '盖州': '101070803', '阜新': '101070901','彰武': '101070902', '辽阳': '101071001', '辽阳县': '101071002', '灯塔': '101071003', '弓长岭': '101071004','铁岭': '101071101', '开原': '101071102', '昌图': '101071103', '西丰': '101071104', '调兵山': '101071105','凌源': '101071203', '喀左': '101071204', '北票': '101071205', '建平县': '101071207', '盘锦': '101071301','大洼': '101071302', '盘山': '101071303', '葫芦岛': '101071401', '建昌': '101071402', '绥中': '101071403','兴城': '101071404', '呼和浩特': '101080101', '土左旗': '101080102', '托县': '101080103', '和林': '101080104','清水河': '101080105', '呼市郊区': '101080106', '武川': '101080107', '包头': '101080201', '白云鄂博': '101080202','满都拉': '101080203', '土右旗': '101080204', '固阳': '101080205', '达茂旗': '101080206', '希拉穆仁': '101080207','乌海': '101080301', '集宁': '101080401', '卓资': '101080402', '化德': '101080403', '商都': '101080404','兴和': '101080406', '凉城': '101080407', '察右前旗': '101080408', '察右中旗': '101080409', '察右后旗': '101080410','四子王旗': '101080411', '丰镇': '101080412', '通辽': '101080501', '舍伯吐': '101080502', '科左中旗': '101080503','科左后旗': '101080504', '青龙山': '101080505', '开鲁': '101080506', '库伦': '101080507', '奈曼': '101080508','扎鲁特': '101080509', '巴雅尔吐胡硕': '101080511', '霍林郭勒': '101081108', '赤峰': '101080601', '阿鲁旗': '101080603','浩尔吐': '101080604', '巴林左旗': '101080605', '巴林右旗': '101080606', '林西': '101080607', '克什克腾': '101080608','翁牛特': '101080609', '岗子': '101080610', '喀喇沁': '101080611', '八里罕': '101080612', '宁城': '101080613','敖汉': '101080614', '宝国吐': '101080615', '鄂尔多斯': '101080701', '达拉特': '101080703', '准格尔': '101080704','鄂前旗': '101080705', '河南': '101080706', '伊克乌素': '101080707', '鄂托克': '101080708', '杭锦旗': '101080709','乌审旗': '101080710', '伊金霍洛': '101080711', '乌审召': '101080712', '东胜': '101080713', '临河': '101080801','五原': '101080802', '磴口': '101080803', '乌前旗': '101080804', '大佘太': '101080805', '乌中旗': '101080806','乌后旗': '101080807', '海力素': '101080808', '那仁宝力格': '101080809', '杭锦后旗': '101080810', '锡林浩特': '101080901','二连浩特': '101080903', '阿巴嘎': '101080904', '苏左旗': '101080906', '苏右旗': '101080907', '朱日和': '101080908','东乌旗': '101080909', '西乌旗': '101080910', '太仆寺': '101080911', '镶黄旗': '101080912', '正镶白旗': '101080913','正蓝旗': '101080914', '多伦': '101080915', '博克图': '101080916', '乌拉盖': '101080917', '海拉尔': '101081001','小二沟': '101081002', '阿荣旗': '101081003', '莫力达瓦': '101081004', '鄂伦春旗': '101081005', '鄂温克旗': '101081006','陈旗': '101081007', '新左旗': '101081008', '新右旗': '101081009', '满洲里': '101081010', '牙克石': '101081011','扎兰屯': '101081012', '额尔古纳': '101081014', '根河': '101081015', '图里河': '101081016', '高力板': '101080510','乌兰浩特': '101081101', '阿尔山': '101081102', '科右中旗': '101081103', '胡尔勒': '101081104', '扎赉特': '101081105','索伦': '101081106', '突泉': '101081107', '科右前旗': '101081109', '阿左旗': '101081201', '阿右旗': '101081202','额济纳': '101081203', '拐子湖': '101081204', '吉兰太': '101081205', '锡林高勒': '101081206', '头道湖': '101081207','中泉子': '101081208', '诺尔公': '101081209', '雅布赖': '101081210', '乌斯泰': '101081211', '孪井滩': '101081212','石家庄': '101090101', '井陉': '101090102', '正定': '101090103', '栾城': '101090104', '行唐': '101090105','灵寿': '101090106', '高邑': '101090107', '深泽': '101090108', '赞皇': '101090109', '无极': '101090110','平山': '101090111', '元氏': '101090112', '赵县': '101090113', '辛集': '101090114', '藁城': '101090115','晋州': '101090116', '新乐': '101090117', '鹿泉': '101090118', '保定': '101090201', '满城': '101090202','阜平': '101090203', '徐水': '101090204', '唐县': '101090205', '高阳': '101090206', '容城': '101090207','涞源': '101090209', '望都': '101090210', '安新': '101090211', '易县': '101090212', '曲阳': '101090214','蠡县': '101090215', '顺平': '101090216', '雄县': '101090217', '涿州': '101090218', '定州': '101090219','安国': '101090220', '高碑店': '101090221', '涞水': '101090222', '定兴': '101090223', '清苑': '101090224','博野': '101090225', '张家口': '101090301', '宣化': '101090302', '张北': '101090303', '康保': '101090304','沽源': '101090305', '尚义': '101090306', '蔚县': '101090307', '阳原': '101090308', '怀安': '101090309','万全': '101090310', '怀来': '101090311', '涿鹿': '101090312', '赤城': '101090313', '崇礼': '101090314','承德': '101090402', '承德县': '101090403', '兴隆': '101090404', '平泉': '101090405', '滦平': '101090406','隆化': '101090407', '丰宁': '101090408', '宽城': '101090409', '围场': '101090410', '唐山': '101090501','丰南': '101090502', '丰润': '101090503', '滦县': '101090504', '滦南': '101090505', '乐亭': '101090506','迁西': '101090507', '玉田': '101090508', '唐海': '101090509', '遵化': '101090510', '迁安': '101090511','曹妃甸': '101090512', '廊坊': '101090601', '固安': '101090602', '永清': '101090603', '香河': '101090604','大城': '101090605', '文安': '101090606', '大厂': '101090607', '霸州': '101090608', '三河': '101090609','沧州': '101090701', '青县': '101090702', '东光': '101090703', '海兴': '101090704', '盐山': '101090705','肃宁': '101090706', '南皮': '101090707', '吴桥': '101090708', '献县': '101090709', '孟村': '101090710','泊头': '101090711', '任丘': '101090712', '黄骅': '101090713', '河间': '101090714', '沧县': '101090716','衡水': '101090801', '枣强': '101090802', '武邑': '101090803', '武强': '101090804', '饶阳': '101090805','安平': '101090806', '故城': '101090807', '景县': '101090808', '阜城': '101090809', '冀州': '101090810','深州': '101090811', '邢台': '101090901', '临城': '101090902', '内丘': '101090904', '柏乡': '101090905','隆尧': '101090906', '南和': '101090907', '宁晋': '101090908', '巨鹿': '101090909', '新河': '101090910','广宗': '101090911', '平乡': '101090912', '威县': '101090913', '清河': '101090914', '临西': '101090915','南宫': '101090916', '沙河': '101090917', '任县': '101090918', '邯郸': '101091001', '峰峰': '101091002','临漳': '101091003', '成安': '101091004', '大名': '101091005', '涉县': '101091006', '磁县': '101091007','肥乡': '101091008', '永年': '101091009', '邱县': '101091010', '鸡泽': '101091011', '广平': '101091012','馆陶': '101091013', '魏县': '101091014', '曲周': '101091015', '武安': '101091016', '秦皇岛': '101091101','青龙': '101091102', '昌黎': '101091103', '抚宁': '101091104', '卢龙': '101091105', '北戴河': '101091106','太原': '101100101', '清徐': '101100102', '阳曲': '101100103', '娄烦': '101100104', '古交': '101100105','尖草坪区': '101100106', '小店区': '101100107', '大同': '101100201', '阳高': '101100202', '大同县': '101100203','天镇': '101100204', '广灵': '101100205', '灵丘': '101100206', '浑源': '101100207', '左云': '101100208','阳泉': '101100301', '盂县': '101100302', '平定': '101100303', '晋中': '101100401', '榆次': '101100402','榆社': '101100403', '左权': '101100404', '和顺': '101100405', '昔阳': '101100406', '寿阳': '101100407','太谷': '101100408', '祁县': '101100409', '平遥': '101100410', '灵石': '101100411', '介休': '101100412','长治': '101100501', '黎城': '101100502', '屯留': '101100503', '潞城': '101100504', '襄垣': '101100505','平顺': '101100506', '武乡': '101100507', '沁县': '101100508', '长子': '101100509', '沁源': '101100510','壶关': '101100511', '晋城': '101100601', '沁水': '101100602', '阳城': '101100603', '陵川': '101100604','高平': '101100605', '泽州': '101100606', '临汾': '101100701', '曲沃': '101100702', '永和': '101100703','隰县': '101100704', '大宁': '101100705', '吉县': '101100706', '襄汾': '101100707', '蒲县': '101100708','汾西': '101100709', '洪洞': '101100710', '霍州': '101100711', '乡宁': '101100712', '翼城': '101100713','侯马': '101100714', '浮山': '101100715', '安泽': '101100716', '古县': '101100717', '运城': '101100801','临猗': '101100802', '稷山': '101100803', '万荣': '101100804', '河津': '101100805', '新绛': '101100806','绛县': '101100807', '闻喜': '101100808', '垣曲': '101100809', '永济': '101100810', '芮城': '101100811','夏县': '101100812', '平陆': '101100813', '朔州': '101100901', '平鲁': '101100902', '山阴': '101100903','右玉': '101100904', '应县': '101100905', '怀仁': '101100906', '忻州': '101101001', '定襄': '101101002','五台县': '101101003', '河曲': '101101004', '偏关': '101101005', '神池': '101101006', '宁武': '101101007','代县': '101101008', '繁峙': '101101009', '五台山': '101101010', '保德': '101101011', '静乐': '101101012','岢岚': '101101013', '五寨': '101101014', '原平': '101101015', '吕梁': '101101100', '离石': '101101101','临县': '101101102', '兴县': '101101103', '岚县': '101101104', '柳林': '101101105', '石楼': '101101106','方山': '101101107', '交口': '101101108', '中阳': '101101109', '孝义': '101101110', '汾阳': '101101111','文水': '101101112', '交城': '101101113', '西安': '101110101', '长安': '101110102', '临潼': '101110103','蓝田': '101110104', '周至': '101110105', '户县': '101110106', '高陵': '101110107', '咸阳': '101110200','三原': '101110201', '礼泉': '101110202', '永寿': '101110203', '淳化': '101110204', '泾阳': '101110205','武功': '101110206', '乾县': '101110207', '彬县': '101110208', '长武': '101110209', '旬邑': '101110210','兴平': '101110211', '延安': '101110300', '延长': '101110301', '延川': '101110302', '子长': '101110303','宜川': '101110304', '富县': '101110305', '志丹': '101110306', '安塞': '101110307', '甘泉': '101110308','洛川': '101110309', '黄陵': '101110310', '黄龙': '101110311', '吴起': '101110312', '榆林': '101110401','府谷': '101110402', '神木': '101110403', '佳县': '101110404', '定边': '101110405', '靖边': '101110406','横山': '101110407', '米脂': '101110408', '子洲': '101110409', '绥德': '101110410', '吴堡': '101110411','清涧': '101110412', '榆阳': '101110413', '渭南': '101110501', '华县': '101110502', '潼关': '101110503','大荔': '101110504', '白水': '101110505', '富平': '101110506', '蒲城': '101110507', '澄城': '101110508','合阳': '101110509', '韩城': '101110510', '华阴': '101110511', '商洛': '101110601', '洛南': '101110602','柞水': '101110603', '商州': '101110604', '镇安': '101110605', '丹凤': '101110606', '商南': '101110607','山阳': '101110608', '安康': '101110701', '紫阳': '101110702', '石泉': '101110703', '汉阴': '101110704','旬阳': '101110705', '岚皋': '101110706', '平利': '101110707', '白河': '101110708', '镇坪': '101110709','宁陕': '101110710', '汉中': '101110801', '略阳': '101110802', '勉县': '101110803', '留坝': '101110804','洋县': '101110805', '城固': '101110806', '西乡': '101110807', '佛坪': '101110808', '宁强': '101110809','南郑': '101110810', '镇巴': '101110811', '宝鸡': '101110901', '千阳': '101110903', '麟游': '101110904','岐山': '101110905', '凤翔': '101110906', '扶风': '101110907', '眉县': '101110908', '太白': '101110909','凤县': '101110910', '陇县': '101110911', '陈仓': '101110912', '铜川': '101111001', '耀县': '101111002','宜君': '101111003', '耀州': '101111004', '杨凌': '101111101', '济南': '10111', '长清': '10112','商河': '10113', '章丘': '10114', '平阴': '10115', '济阳': '10116', '青岛': '10111','崂山': '10112', '即墨': '10114', '胶州': '10115', '胶南': '10116', '莱西': '10117','平度': '10118', '淄博': '101120301', '淄川': '101120302', '博山': '101120303', '高青': '101120304','周村': '101120305', '沂源': '101120306', '桓台': '101120307', '临淄': '101120308', '德州': '101120401','武城': '101120402', '临邑': '101120403', '陵县': '101120404', '齐河': '101120405', '乐陵': '101120406','庆云': '101120407', '平原': '101120408', '宁津': '101120409', '夏津': '101120410', '禹城': '101120411','烟台': '101120501', '莱州': '101120502', '长岛': '101120503', '蓬莱': '101120504', '龙口': '101120505','招远': '101120506', '栖霞': '101120507', '福山': '101120508', '牟平': '101120509', '莱阳': '101120510','海阳': '101120511', '潍坊': '101120601', '青州': '101120602', '寿光': '101120603', '临朐': '101120604','昌乐': '101120605', '昌邑': '101120606', '安丘': '101120607', '高密': '101120608', '诸城': '101120609','济宁': '101120701', '嘉祥': '101120702', '微山': '101120703', '鱼台': '101120704', '兖州': '101120705','金乡': '101120706', '汶上': '101120707', '泗水': '101120708', '梁山': '101120709', '曲阜': '101120710','邹城': '101120711', '泰安': '101120801', '新泰': '101120802', '肥城': '101120804', '东平': '101120805','宁阳': '101120806', '临沂': '101120901', '莒南': '101120902', '沂南': '101120903', '苍山': '101120904','临沭': '101120905', '郯城': '101120906', '蒙阴': '101120907', '平邑': '101120908', '费县': '101120909','沂水': '101120910', '菏泽': '101121001', '鄄城': '101121002', '郓城': '101121003', '东明': '101121004','定陶': '101121005', '巨野': '101121006', '曹县': '101121007', '成武': '101121008', '单县': '101121009','滨州': '101121101', '博兴': '101121102', '无棣': '101121103', '阳信': '101121104', '惠民': '101121105','沾化': '101121106', '邹平': '101121107', '东营': '101121201', '河口': '101121202', '垦利': '101121203','利津': '101121204', '广饶': '101121205', '威海': '101121301', '文登': '101121302', '荣成': '101121303','乳山': '101121304', '成山头': '101121305', '石岛': '101121306', '枣庄': '101121401', '薛城': '101121402','峄城': '101121403', '台儿庄': '101121404', '滕州': '101121405', '日照': '101121501', '五莲': '101121502','莒县': '101121503', '莱芜': '101121601', '聊城': '101121701', '冠县': '101121702', '阳谷': '101121703','高唐': '101121704', '茌平': '101121705', '东阿': '101121706', '临清': '101121707', '莘县': '101121709','乌鲁木齐': '101130101', '小渠子': '101130103', '达坂城': '101130105', '乌鲁木齐牧试站': '101130108', '天池': '101130109','白杨沟': '101130110', '克拉玛依': '101130201', '乌尔禾': '101130202', '白碱滩': '101130203', '石河子': '101130301','炮台': '101130302', '莫索湾': '101130303', '昌吉': '101130401', '呼图壁': '101130402', '米泉': '101130403','阜康': '101130404', '吉木萨尔': '101130405', '奇台': '101130406', '玛纳斯': '101130407', '木垒': '101130408','蔡家湖': '101130409', '吐鲁番': '101130501', '托克逊': '101130502', '鄯善': '101130504', '库尔勒': '101130601','轮台': '101130602'}# 实例化,微信扫描登录# cache_path=True 保存缓存登录信息bot = Bot(cache_path='wxpy.pkl', qr_path='qr.png')# 调用图灵机器人API,发送消息并获得机器人的回复tuling = Tuling(api_key='be43344e543d419198e4bc17c9511c5f')headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}# 获取天气信息def capture_weather(city_code):url_weather = f'/weather/{city_code}.shtml'weather_info = dict()response = requests.get(url=url_weather, headers=headers)# 数据清洗et = etree.HTML(response.content.decode('utf-8'))# 日期today = et.xpath('//div[@id="7d"]/ul/li[1]/h1/text()')[0]weather_info['日期'] = today# 天气weather = et.xpath('//div[@id="7d"]/ul/li[1]/p/text()')[0]weather_info['天气'] = weather# 温度temperature = et.xpath('//div[@id="7d"]/ul/li[1]/p[2]/i/text()')[0]weather_info['温度'] = temperature# 风级wind = et.xpath('//div[@id="7d"]/ul/li[1]/p[3]/i/text()')[0]weather_info['风级'] = wind# 风向wind_direction = et.xpath('//div[@id="7d"]/ul/li[1]/p[3]/em/span/@title')[0]weather_info['风向'] = wind_direction# 穿衣dress = et.xpath('//li[@id="chuanyi"]/a/p/text()')[0]weather_info['温馨提示'] = dressreturn weather_info# 爬取的天气信息重新组装def process_info(weather_info):info = ''''''for key, value in weather_info.items():one = key + ':' + value + '\n'info += onereturn info# 发送消息给好友def reply_friend(info, friendName):# 扫描登录# cache_path=True 保存缓存登录信息# bot = Bot(cache_path='wxpy.pkl',qr_path='qr.png')# 获取好友girl_friend = bot.search(friendName)[0]# 发送消息girl_friend.send(info)# 西安 101110101# 获取城市信息def search_city():city = entry.get()global city_codecity_code = weatherCode[city]text.insert(tk.END, "{} 天气ID:{}".format(city, city_code))text.see(tk.END)text.update()def search_friends():# 获取好友昵称global friendNamefriendName = entry2.get()text.insert(tk.END, "好友昵称:{}".format(friendName))text.see(tk.END)text.update()# 获取天气信息weather_info = capture_weather(city_code)global infoinfo = process_info(weather_info)text.insert(tk.END, "天气信息:{}".format(info))text.see(tk.END)text.update()def auto_reply():# 开始运行girl_friend = bot.search(friendName)[0]# 回复指定好友@bot.register(girl_friend)def auto_reply_all(msg):tuling.do_reply(msg)text.insert(tk.END, "对好友:{}, 自动回复功能已开启!".format(friendName))text.see(tk.END)text.update()bot.join()def affirm_time():global time_numtime_task = timer.get()# ("1小时", "1天", "1秒", "5秒")if time_task == "1小时":time_num = 1000 * 3600if time_task == "1天":time_num = 1000 * 3600 * 24if time_task == "1秒":time_num = 1000if time_task == "5秒":time_num = 1000 * 5text.insert(tk.END, "定时时间已设置:{}!".format(time_task))text.see(tk.END)text.update()text.insert(tk.END, "确认无误请点击 发送天气!")text.see(tk.END)text.update()def sent_weather():reply_friend(info, friendName)text.insert(tk.END, "好友: {}, 天气信息已发送!".format(friendName))text.see(tk.END)text.update()# 添加延时任务,tkinter自动的延时函数after()root.after(time_num, sent_weather)# 创建界面root = tk.Tk()# 添加标题root.title('WeChat')# 设置窗口大小 x 小写x连,不能用乘号 后面两位是x,y坐标,固定初始位置root.geometry('545x460+400+150')# 固定大小root.resizable(height=False, width=False)# 城市 标签控件label = tk.Label(root, text='请输入城市名:', font=('华文行楷', 15))# 标签定位 grid 网格式定位label.grid(row=0, column=0, sticky=tk.W) # 默认 row=0,column=0# 输入框entry = tk.Entry(root, font=('隶书', 15), width=38)# 定位 第0行 第1列entry.grid(row=0, column=1, sticky=tk.W)# command 点击触发方法 搜索歌曲button5 = tk.Button(root, text='搜索城市', font=('隶书', 15), fg='green', command=search_city)# 定位 sticky 对齐方式 W E N S 东南西北button5.grid(row=0, column=1, sticky=tk.E)# 好友 标签控件label2 = tk.Label(root, text='请输入好友昵称:', font=('华文行楷', 15))# 标签定位 grid 网格式定位label2.grid(row=1, column=0, sticky=tk.W) # 默认 row=0,column=0# 输入框entry2 = tk.Entry(root, font=('隶书', 15), width=38)# 定位 第0行 第1列entry2.grid(row=1, column=1, sticky=tk.W)# command 点击触发方法 搜索歌曲button2 = tk.Button(root, text='搜索好友', font=('隶书', 15), fg='green', command=search_friends)# 定位 sticky 对齐方式 W E N S 东南西北button2.grid(row=1, column=1, sticky=tk.E)# 列表框text = tk.Listbox(root, font=('楷书', 12), width=68, heigh=18)# 定位 columnspan 组件横跨的列数text.grid(row=2, columnspan=2)# 标签控件label1 = tk.Label(root, text='设置定时时间:', font=('华文行楷', 15))# 标签定位 grid 网格式定位label1.grid(row=3, column=0, sticky=tk.W) # 默认 row=0,column=0# 定时任务下拉框# 窗体自带的文本,新建一个值timer = tk.StringVar()comboxlist = bobox(root, width=12, textvariable=timer) # 初始化comboxlist["values"] = ("1小时", "1天", "1秒", "5秒")comboxlist.grid(column=1, row=3, sticky=tk.W)comboxlist.current(0) # 选择第一个# 点击按钮button = tk.Button(root, text='确认时间', font=('隶书', 15), fg='red', command=affirm_time)# 定位 sticky 对齐方式 W E N S 东南西北button.grid(row=3, column=1, sticky=tk.E)# 点击按钮button = tk.Button(root, text='自动回复', font=('隶书', 15), fg='blue', command=auto_reply)# 定位 sticky 对齐方式 W E N S 东南西北button.grid(row=4, column=0, sticky=tk.W)# command 点击触发方法button1 = tk.Button(root, text='发送天气', font=('隶书', 15), fg='blue', command=sent_weather)# 定位 sticky 对齐方式 W E N S 东南西北button1.grid(row=4, column=1, sticky=tk.E)# 显示界面root.mainloop()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。