什么?你还没女朋友?教你如何借助Python俘获女孩子芳心!

天气降温,感情却升温了?

上午刚到公司,就收到小Q发来的灵魂拷问:

“Q仔!要不然下午请个假!我带你去精神科看看!?”我实在忍不了,脱口而出。

话音未落,前排的运营小花回头看向小Q,莞尔一笑,百媚横生。

这个闷骚小伙子什么时候勾搭上运营一枝花了?我正要追问,小Q看穿了我的意图,故作正经:“咳咳!工作了工作了!”

一大早喂我这么一碗狗粮还让我专心工作?你们以为不说我就没办法找到线索?

伟大的哲学家亚里士少德曾经说过“一段感情的开始,往往是通过朋友圈体现的”。我点开了小花的朋友圈,刷啊刷啊刷,终于在半个月前的一条朋友圈里发现了端倪。

小Q这个闷葫芦,竟然每天下班前发一封天气关心邮件来俘获芳心!脑回路真是奇清!

怪不得今天一上班就和我说Python像是个月老,牵着他们的情愫!因为这些用Python来实现并自动化,可以说是分分钟的事儿。我这个动手狂魔决定来复现一下,顺便搞搞事情。

整个过程只涉及到爬取天气和发送邮件,可以说一气呵成。

在敲代码的过程中,我意识到最难的部分,是想到把两者结合,并编辑土味关怀发送给目标用户了。毕竟都9102年了,虽然天气预报随手可看,但真正有几个人每天会关注呢?

要拿到天气的数据,www.tianqi.com这个网址比较适合,所有数据都可以直接在源代码中拿到,天气小可爱长这个样子:

爬取只需简单伪装headers,就可以快乐的定位到所有想拿的数据了,部分代码如下:

import requests
from lxml import etree

def parse(url = ‘https://www.tianqi.com/hangzhou‘):
    headers = {‘User-Agent‘:‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36‘}
    html = requests.get(url,headers = headers)
    bs = etree.HTML(html.text)

    #今天天气相关数据:日期,星期几,天气,最低气温,最高气温
    today_date = bs.xpath(‘//ul[@class = "week"]/li[1]/b/text()‘)[0]
    today_week = bs.xpath(‘//ul[@class = "week"]/li[1]/span/text()‘)[0]
    today_weather = bs.xpath(‘//ul[@class = "txt txt2"]/li[1]/text()‘)[0]
    today_low = bs.xpath(‘//div[@class = "zxt_shuju"]/ul/li[1]/b/text()‘)[0]
    today_high = bs.xpath(‘//div[@class = "zxt_shuju"]/ul/li[1]/span/text()‘)[0]

    #明天天气相关数据,维度和上述一致
    tomorrow_date = bs.xpath(‘//ul[@class = "week"]/li[2]/b/text()‘)[0]
    tomorrow_week = bs.xpath(‘//ul[@class = "week"]/li[2]/span/text()‘)[0]
    tomorrow_weather = bs.xpath(‘//ul[@class = "txt txt2"]/li[2]/text()‘)[0]
    tomorrow_low = bs.xpath(‘//div[@class = "zxt_shuju"]/ul/li[2]/b/text()‘)[0]
    tomorrow_high = bs.xpath(‘//div[@class = "zxt_shuju"]/ul/li[2]/span/text()‘)[0]

    tomorrow = (‘明天是%s,%s,%s,%s-%s度,温差%d度‘)%           (tomorrow_date,tomorrow_week,tomorrow_weather,tomorrow_low,tomorrow_high,int(int(tomorrow_high)-int(tomorrow_low)))

    print((‘明天是%s,%s,%s,%s-%s度,温差%d度‘)%           (tomorrow_date,tomorrow_week,tomorrow_weather,tomorrow_low,tomorrow_high,int(int(tomorrow_high)-int(tomorrow_low))))

    #计算今明两天温度差异,这里用的是最高温度
    temperature_distance = int(tomorrow_high) - int(today_high)

    if temperature_distance > 0:
        a = ‘明日升温%d‘ % temperature_distance
        print(‘明日升温%d‘ % temperature_distance)
    if temperature_distance < 0:
        a = ‘明日降温%d‘ % temperature_distance
        print(‘明日降温%d‘ % temperature_distance)
    else:
        a = ‘最高气温不变‘
        print(‘最高气温不变‘)
    content = tomorrow,a
    return content

搞定之后,一个回车,不仅拿到了明天的天气(其实未来几天的都能拿到),还顺带计算了温差。

把爬到的天气数据简单编辑一下,就可以通过邮件直接发给目标用户了。

说到发邮件,强烈安利yagmail这个库,它把极简主义发挥到极致,两行代码就能完成登录和发送邮件的骚操作,代码是一看即会:

#Python学习群 827513319
import yagmail

def send_email(contents,send_to = ‘[email protected]‘):
    #登录邮箱,设置登录的账号,密码和port等信息
    yag = yagmail.SMTP(user = ‘[email protected]‘,password = ‘yourpass‘,
                       host = ‘smtp.sohu.com‘,port = ‘465‘)

    #登录完即可一件发送,设置发送给谁,和邮件主题,邮件内容
    yag.send(to = send_to,
             subject = ‘天气关怀‘,
             contents = contents)
    print(‘发送成功!~‘)

封装好之后,什么定期爬取天气,定时发送邮件给需要被关怀的人那是小菜一碟。

有了Python这个月老,鸡贼的小Q不费事又能走心,一举两得啊。

我决定用这个代码做一些符合人道主义精神的事情。

给小花的邮件你不是每天17:50发嘛,我17:45匿名抢在你前面发,给你们个Suprise,说安排就安排!

惴惴不安的等到了17:45,然而小花那边没有任何动静,连头都没抬。

不对啊?难道是邮件发送代码有问题?我赶紧看了看已发送邮件历史,17:45的天气关怀邮件赫然写着“已发送”三个大字。

目标静悄悄,一定在作妖。我怀着忐忑的心情等等待着,等待着。

20:15,没想到等来的是小Q的微信消息:

最后一句,让人,无语凝噎又醍醐灌顶...

直到现在,脑子里都充斥着情感哲学家小Q的名言:

“除了我,谁的关怀都是骚扰啊!”

“除了我,谁的关怀都是骚扰啊!”

“除了我,谁的关怀都是骚扰啊!”

注:完整爬取天气+发邮件代码都在电脑里没上传!

原文地址:https://www.cnblogs.com/chengxyuan/p/12178233.html

时间: 2024-08-09 14:28:50

什么?你还没女朋友?教你如何借助Python俘获女孩子芳心!的相关文章

学习数据结构的第六天(一)(包括一些还没学习的,指导之后学习的要点)

现在看一下,set和map的作用,以及treeset的作用. 对于以后还需要学哪些: 对于相应的时间复杂度的分析.对于排序的相应内容,都是需要再看的. 什么最好.最坏之类的. 自写数据结构对于leetcode相应代码的实现也要学,在哪些部分去写private class 在哪些部分去写private interface,都要学. 对于之前学过的计算机网络.操作系统等知识,需要先复习已经学过的了.然后的话再去根据面试添加内容. set和map的相应内容: 如果说自己去写相应的实现, Set<Str

我还没死!!微信公众号——自媒体的营销之路

过去的非常多天的一直没有写什么博客,我还没死. 实际上我在忙着几个项目的设计和制作,个人的站点.企业的站点另一些自媒体的编辑.创作,实在很抱歉大家对我的等待哈,当前我同一时候还在山东毛豆科技工作负责微企通.秀企来以及微商会的实现工作. 同一时候在企业里学了一些SEO和Corel系列软件的使用,提高了HTML和CSS的使用能力,顺便学了一些文案的知识--感觉良好. 现在,我想要提升一下个人的品牌的建立和提升,而一个博客是远远不能满足全部的要求.所以我把目光投向了微信--差点儿每个中国人都在使用的A

秋姑娘还没来得及告别,冬韵就轻歌曼舞而来

冬悄悄的来了,秋姑娘还没来得及告别,冬韵就轻歌曼舞而来,冬姑娘带着晶莹的诗心,身披白纱婷婷而至.带着纯洁和梦想轻奏一曲温婉的歌,携着雪花翩翩起舞的韵律,还有梅花的芳菲在人间淡淡挥洒韵致,冬天来了,春天还会远吗? ***---------------------题记 冬姑娘带着晶莹的诗心,身披白纱婷婷而至.冬韵,浅浅的着韵在洁白的雪花,在芬芳妩媚的梅花上绽放,美好的情愫在飘荡,丝丝温馨,盈着阳光淡淡的清香. 清晨空气清新,阳光暖暖照着我,惬意盈满心间,静静的听一曲涤情的小夜曲,任时光轻飘飘的流转,

人生中处处都是创业经商,若不是,那代表着还没找到商业的秘密

为什么说经商而不是创业呢,我觉得创业这个词用得有点不恰当,创业代表着一个暂新的事业,因此还是说经商较为准确. 很多热血青年认为创业or经商是他们一个重大的人生决定,其实不然,经商无处不在,每个人每天都在经商,不是吗?你只要购买或交易就是一种经商. 一般人认为只要有实体店或工商注册才是象征着创业的一个身份代表,其实大众这样认为也没错,但也错了,错就错在一个观念的错误,什么观念呢?认识问题总是在一个起点上,而不是一个生态系统的认识创业的主客观过程的行为. 很多创业者认为,创业就是至死地而后生的过程,

找来的清除缓存代码,还没试过。

/// <summary>/// 获取数据缓存/// </summary>/// <param name="CacheKey">键</param>public static object GetCache(string CacheKey){    System.Web.Caching.Cache objCache = HttpRuntime.Cache;    return objCache[CacheKey];}/// <summ

当前不会命中断点,还没有加载该文档加载任何符号

断点调试是我编程时经常用到的,但有的程序并一定有Windows界面,而是附加到其他程序中的,如ArcGIS的Addin开发.当我在代码中插入断点调试无效(断点不起作用),并警告"当前不会命中断点,还没有加载该文档加载任何符号". 网上查了说可能是Framework版本的问题,我才恍然大悟:ArcGIS 10.1的Framework版本配置是3.5,而默认VS2010新建的程序Framework版本是4.0,原来如此. 修改目标框架后,要重新清理.重新生成一下. 虽然,调试时还是如此显示

三星坠落:最糟的日子还没到来

现如今的大众,都充满了"邪恶"的恶趣味.不再关心某个名人.明星,或某家企业是如何从无到有,一举成名,一夜暴富的,更关心的是他们如何从天堂坠入深渊.这样他们才能嘲笑一句:"早知如此,何必努力."如今,三星就面临着这样一个尴尬处境.在财大气粗了好几年后,不景气的财报凸显出它的无力,也让很多人在等着看它的笑话. 事实上,三星坠落并不是骤然而至,而是有着深刻根源.正所谓最强势的地方就是最薄弱的环节,三星最终还是败在了成就自己巅峰的移动业务上.如今的三星就像热锅上的蚂蚁,急的

《活着》——活着是因为自己还没死

我读这本书的时候没什么震撼力,觉得一般般. 后来跟人讨论这本书的时候我说,如果福贵不赌博,他早就死了. 其实是我只是看到了死的痛苦,而这本书最打动人的地方应该是福贵坚韧地活着,承担生活的沉重. 所以活着是因为自己还没死. 最后那一段写的真好 我知道黄昏正在转瞬即逝,黑夜从天而降了.我看到广阔的土地袒露着结实的胸膛,那是召唤的姿态,就像女人召唤着她们的儿女,土地召唤着黑夜来临.

你还没真的努力过,就轻易输给了懒惰

(Xee:越来越懒惰了,哎,最近的日子不是很好过!多读些书吧) 前不久一个孩子在微信上发了一大堆截图给我,仔细一看,都是介绍北大清华的牛人们的.这个得了奥赛冠军,那个门门年级第一.那孩子很颓丧得说:"我觉得我再怎么努力也比不上他们啊,突然对自己的未来好没有希望." 忽然想到了知乎上的一个经典回答:"以大多数人努力的程度,根本还没到拼智商的地步." 我的一个远房舅妈,一直是个亲戚中的著名人物. 由于时代的原因,她读到初中毕业就没有继续念书了.毕业后进入了工厂上班,经人