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

效果展示

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

功能实现思路

1、爬取天气信息
  • 天气信息获取网站:中国天气网
    • http://www.weather.com.cn/ 网站后面拼接上weather/{city_code}.shtml,可以获取到指定城市的天气情况(西安 天气ID:101110101)
    • 城市天气ID获取,自己百度查找,本篇博客代码内部也有
    • 西安的天气页面完整链接:http://www.weather.com.cn/weather/101110101.shtml
      在这里插入图片描述
    • 获取到页面之后,通过xpath获取需要的天气内容(使用xpath时尽量用标签的ID获取需要的信息,防止网站样式变化,影响获取值,需要频繁修改爬虫)
    • 将爬虫获取到天气信息,组装成字符串,方便微信发送
二、微信发送信息
  • 应用模块wxpy,python操作微信的模块
    • 安装方式:pip install wxpy
    • 实例化对象,扫描登录
    • 给指定好友或者群组发送天气信息
    • 对好友或者群组设置自动回复(使用图灵机器人自动回复)
三、tkinter模块添加GUI图形化界面
  • tkinter模块使用详细资料自己百度查询,这里就不多叙述
四、打包exe文件

话不多说上代码

# -*- coding: utf-8 -*-
# @Time    : 2019/3/22 21:53
# @Author  : cd

from tkinter import ttk
import tkinter as tk
import requests
from lxml import etree
from wxpy import *

# 这里可以把天气ID字典放到别的文件中引入,这个随便都可以
weatherCode = {
   '北京': '101010100', '海淀': '101010200', '朝阳': '101071201', '顺义': '101010400', '怀柔': '101010500',
               '通州': '101010600', '昌平': '101010700', '延庆': '101010800', '丰台': '101010900', '石景山': '101011000',
               '大兴': '101011100', '房山': '101011200', '密云': '101011300', '门头沟': '101011400', '平谷': '101011500',
               '上海': '101020100', '闵行': '101020200', '宝山': '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', 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值