最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python利用itchat模塊定時給朋友發(fā)送微信信息

 更新時間:2022年01月07日 11:30:29   作者:夢幻python  
這篇文章主要介紹了在Python中利用itchat模塊編寫一個爬蟲腳本,可以實現(xiàn)每天定時給朋友發(fā)微信暖心話,感興趣的可以跟隨小編一起學習一下

功能

定時給女朋友發(fā)送每日天氣、提醒、每日一句。

數(shù)據(jù)來源

每日一句和上面的大佬一樣也是來自ONE·一個

天氣信息來自SOJSON

實現(xiàn)效果

代碼說明

目錄結構

city_dict.py :城市對應編碼字典

config.yaml :設置定時時間,女友微信名稱等參數(shù)

GFWeather.py:核心代碼

requirements.txt:需要安裝的庫

run.py:項目運行類

核心代碼

GFWeather.py

class gfweather:
 headers = {
 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36",
 }
 # 女朋友的用戶id
 bf_wechat_name_uuid = ''
 def __init__(self):
 self.city_code, self.start_datetime, self.bf_wechat_name, self.alarm_hour, self.alarm_minute = self.get_init_data()
 def get_init_data(self):
 '''
 初始化基礎數(shù)據(jù)
 :return:
 '''
 with open('config.yaml', 'r', encoding='utf-8') as f:
 config = yaml.load(f)
 city_name = config.get('city_name').strip()
 start_date = config.get('start_date').strip()
 wechat_name = config.get('wechat_name').strip()
 alarm_timed = config.get('alarm_timed').strip()
 init_msg = f"每天定時發(fā)送時間:{alarm_timed}\n女友所在城市名稱:{city_name}\n女朋友的微信昵稱:{wechat_name}\n在一起的第一天日期:{start_date}"
 print(u"*" * 50)
 print(init_msg)
 # 根據(jù)城市名稱獲取城市編號,用于查詢天氣。查看支持的城市為:http://cdn.sojson.com/_city.json
 city_code = city_dict.city_dict.get(city_name)
 if not city_code:
 print('您輸出城市無法收取到天氣信息')
 start_datetime = datetime.strptime(start_date, "%Y-%m-%d")
 hour, minute = [int(x) for x in alarm_timed.split(':')]
 # print(hour, minute)
 return city_code, start_datetime, wechat_name, hour, minute
 def is_online(self, auto_login=False):
 '''
 判斷是否還在線,
 :param auto_login:True,如果掉線了則自動登錄。
 :return: True ,還在線,F(xiàn)alse 不在線了
 '''
 def online():
 '''
 通過獲取好友信息,判斷用戶是否還在線
 :return: True ,還在線,F(xiàn)alse 不在線了
 '''
 try:
 if itchat.search_friends():
 return True
 except:
 return False
 return True
 if online():
 return True
 # 僅僅判斷是否在線
 if not auto_login:
 return online()
 # 登陸,嘗試 5 次
 for _ in range(5):
 # 命令行顯示登錄二維碼
 # itchat.auto_login(enableCmdQR=True)
 itchat.auto_login()
 if online():
 print('登錄成功')
 return True
 else:
 return False
 def run(self):
 # 自動登錄
 if not self.is_online(auto_login=True):
 return
 # 定時任務
 scheduler = BlockingScheduler()
 # 每天9:30左右給女朋友發(fā)送每日一句
 scheduler.add_job(self.start_today_info, 'cron', hour=self.alarm_hour, minute=self.alarm_minute)
 scheduler.start()
 def start_today_info(self):
 print("*" * 50)
 print('獲取相關信息...')
 dictum_msg = self.get_dictum_info()
 today_msg = self.get_weather_info(dictum_msg)
 print(f'要發(fā)送的內容:\n{today_msg}')
 if self.is_online(auto_login=True):
 # 獲取好友username
 if not self.bf_wechat_name_uuid:
 friends = itchat.search_friends(name=self.bf_wechat_name)
 if not friends:
 print('昵稱錯誤')
 return
 self.bf_wechat_name_uuid = friends[0].get('UserName')
 itchat.send(today_msg, toUserName=self.bf_wechat_name_uuid)
 print('發(fā)送成功..\n')
 def get_dictum_info(self):
 '''
 獲取格言信息(從『一個。one』獲取信息 http://wufazhuce.com/)
 :return: str 一句格言或者短語
 '''
 print('獲取格言信息..')
 user_url = 'http://wufazhuce.com/'
 resp = requests.get(user_url, headers=self.headers)
 soup_texts = BeautifulSoup(resp.text, 'lxml')
 # 『one -個』 中的每日一句
 every_msg = soup_texts.find_all('div', class_='fp-one-cita')[0].find('a').text
 return every_msg
 def get_weather_info(self, dictum_msg=''):
 '''
 獲取天氣信息。網(wǎng)址:https://www.sojson.com/blog/305.html
 :param dictum_msg: 發(fā)送給朋友的信息
 :return:
 '''
 print('獲取天氣信息..')
 weather_url = f'http://t.weather.sojson.com/api/weather/city/{self.city_code}'
 resp = requests.get(url=weather_url)
 if resp.status_code == 200 and resp.json().get('status') == 200:
 weatherJson = resp.json()
 # 今日天氣
 today_weather = weatherJson.get('data').get('forecast')[1]
 locale.setlocale(locale.LC_CTYPE, 'chinese')
 today_time = datetime.now().strftime('"%Y年%m月%d日 %H:%M:%S"')
 # 今日天氣注意事項
 notice = today_weather.get('notice')
 # 溫度
 high = today_weather.get('high')
 high_c = high[high.find(' ') + 1:]
 low = today_weather.get('low')
 low_c = low[low.find(' ') + 1:]
 temperature = f"溫度 : {low_c}/{high_c}"
 # 風
 fx = today_weather.get('fx')
 fl = today_weather.get('fl')
 wind = f"{fx} : {fl}"
 # 空氣指數(shù)
 aqi = today_weather.get('aqi')
 aqi = f"空氣 : {aqi}"
 day_delta = (datetime.now() - self.start_datetime).days
 delta_msg = f'寶貝這是我們在一起的第 {day_delta} 天'
 today_msg = f'{today_time}\n{delta_msg}。\n{notice}\n{temperature}\n{wind}\n{aqi}\n{dictum_msg}\n來自最愛你的我。'
 return today_msg

項目運行

安裝依賴

使用 pip install -r requirements.txt 安裝所有依賴

參數(shù)配置

config.yaml

#每天定時發(fā)送的時間點,如:8:30
alarm_timed: '9:30'
# 女友所在城市名稱
city_name: '桂林'
# 你女朋友的微信名稱
wechat_name: '古典'
# 從那天開始勾搭的
start_date: '2017-11-11'

到此這篇關于Python利用itchat模塊定時給朋友發(fā)送微信信息的文章就介紹到這了,更多相關Python itchat定時發(fā)送微信信息內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python pandas消除空值和空格以及 Nan數(shù)據(jù)替換方法

    python pandas消除空值和空格以及 Nan數(shù)據(jù)替換方法

    今天小編就為大家分享一篇python pandas消除空值和空格以及 Nan數(shù)據(jù)替換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Ubuntu16.04/樹莓派Python3+opencv配置教程(分享)

    Ubuntu16.04/樹莓派Python3+opencv配置教程(分享)

    下面小編就為大家分享一篇Ubuntu16.04/樹莓派Python3+opencv配置教程。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 基于Python編寫一個IP地址存活檢查器

    基于Python編寫一個IP地址存活檢查器

    這篇文章主要為大家詳細介紹了如何基于Python編寫一個IP地址存活檢查器,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2024-11-11
  • Python實現(xiàn)將HTML轉換成doc格式文件的方法示例

    Python實現(xiàn)將HTML轉換成doc格式文件的方法示例

    這篇文章主要介紹了Python實現(xiàn)將HTML轉換成doc格式文件的方法,涉及Python htmlparser及docx模塊的相關使用技巧,需要的朋友可以參考下
    2017-11-11
  • Python中requests庫的學習方法詳解

    Python中requests庫的學習方法詳解

    這篇文章主要為大家詳細介紹了Python中requests庫的學習方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • python用selenium打開瀏覽器后秒關閉瀏覽器的解決辦法

    python用selenium打開瀏覽器后秒關閉瀏覽器的解決辦法

    最近朋友在學Selenium的時候遇到一個問題,當執(zhí)行完selenium程序后,瀏覽器會閃退也就是自動關閉,這篇文章主要給大家介紹了關于python用selenium打開瀏覽器后秒關閉瀏覽器的解決辦法,需要的朋友可以參考下
    2023-07-07
  • python中的load、loads實現(xiàn)反序列化示列

    python中的load、loads實現(xiàn)反序列化示列

    這篇文章主要介紹python中的load、loads實現(xiàn)反序列化,在python自動化中,我們傳遞一些參數(shù)是需要從文件中讀取過來的,讀取過來的字典并非python對象數(shù)據(jù)類型而是string類型,下面來看詳情內容吧
    2021-10-10
  • python實現(xiàn)定時同步本機與北京時間的方法

    python實現(xiàn)定時同步本機與北京時間的方法

    這篇文章主要介紹了python實現(xiàn)定時同步本機與北京時間的方法,涉及Python針對時間的操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 詳解OpenCV自適應直方圖均衡化的應用

    詳解OpenCV自適應直方圖均衡化的應用

    在本文中,將介紹如何應用對比度受限的自適應直方圖均衡化 ( Contrast Limited Adaptive Histogram Equalization, CLAHE ) 來均衡圖像,需要的可以參考一下
    2022-02-02
  • pytest用yaml文件編寫測試用例流程詳解

    pytest用yaml文件編寫測試用例流程詳解

    這篇文章主要介紹了pytest用yaml文件編寫測試用例流程,本文通過實例代碼圖文相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12

最新評論

武汉市| 虎林市| 岢岚县| 吉木萨尔县| 桂阳县| 枣庄市| 城口县| 全椒县| 临城县| 中西区| 资阳市| 铁岭市| 黑龙江省| 嵊州市| 高阳县| 观塘区| 栖霞市| 隆尧县| 武宁县| 陇西县| 榆树市| 广水市| 曲松县| 迁西县| 建昌县| 青阳县| 绥棱县| 寿光市| 松潘县| 巴中市| 湖北省| 淄博市| 南京市| 大庆市| 交口县| 武乡县| 延吉市| 库车县| 达孜县| 平度市| 陵川县|