10分钟教你用python如何正确把妹

10分钟教你用python打造贪吃蛇超详细教程 【python】10分钟教你用Python做个打飞机小游戏超详细教程 更多精彩尽在微信公众号【程序猿声】 我知道你们一定想先看效果如何 00 目录 整体框架 开始之前-精灵类Sprite 子弹类class Bullet 玩家飞机类class Player 敌机类class Enemy 游戏主体循环以及帧率... 阅读详情

前言

今天没妹子约,刚好研究一下。如何用神奇的python打造一个把妹神器吧。看完这个,你们就能走向人生巅峰,迎娶白富美啦。

我知道你们想看看效果

image

当然啦,这只是测试版的效果,真正的版本可比这个厉害多啦。不过作为一个直男,另一个男的给小编发这个测试感觉还是有点怪怪的哈。

文:吉柏言

暑假来了,各位又不得不和男女朋友暂时分开2个月了!!长达两个月的时间里不能相见,你可知我多想你啊,想知道你的城市下雨了吗,想知道你带伞了吗,想知道你长什么样,想知道你叫啥,咳咳,单身汪小编表示情绪稳定。

没关系,虽然不能见面,但是云关怀还是要到的嘛,每天查一查你那里的天气如何,送上作为男朋友的关切问候,再配上一张爱你的图片,噫~~。但是作为绝地鸡王那必须每晚吃鸡呀,早上醒来忘了打卡怎么办?? 能让机器干的活我们何必自己动手呢?当然可以走一波python大法好啦!

今天的代码我们要做得就是定点打卡,每天向亲爱的女票送去温暖的祝福~~,单身汪小编表示情绪稳定。

环境准备

首先,安装我们需要的库:

import requests
from bs4 import BeautifulSoup
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
import smtplib
import os

我们用requests + bs4 库进行爬取当日的天气状况以及我们需要的图片,用email库和smtplib库来发邮件,当中我们还需要os库对其他文件进行操作。

开始搞事

首先爬取天气状况和图片资源,我选择的是对中国气象台和豆瓣上一位名为名为“狼魄乾坤”的网友的豆瓣相册进行爬取,首先本着盗亦有道的原则,先查看robots协议。
image

image

很好,中央气象站没有robots协议,豆瓣也没有对相册加以限制,那么我们可以放心大胆地爬取了。

进入网站,查找一下她所在的城市,本汪没有女票就以自己所在的城市为例子了。

http://www.nmc.cn/publish/forecast/AHB/wuhan.html 。分析一下这个地址,发现对于城市的分类命名规则是A+省份简写如湖北(HB)以及城市拼音,对于一些比较模糊的省份简写小编附在下图的代码中:

def main():
#    print("河北HE 内蒙古NM 陕西SN 黑龙江HL 河南HA")
#    province = input("input the province,the big alpha for short:")
#    city = input("input the city you wanna search plz:")
    province = "HB"
    city = "wuhan"
    url = "http://www.nmc.cn/publish/forecast/A" + province + "/" + city + ".html"
    html = getHTMLText(url)
    url = "https://www.douban.com/photos/album/157693223/"
    image = getHTMLText(url)

请忽略小编的辣鸡英文。

getHTMLText(url)是自定义方法,为的是获取网页的源代码,返回值为包含整个源代码的字符串:

def getHTMLText(url):
    try:
        r = requests.get(url)
        print(r.raise_for_status)
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return ""

我们用requests.get(url)向网站提出爬取申请,用raise_for_status查看状态码,如果为200则说明爬取成功,然后我们用apparent_encoding替换掉encoding,这是让程序自己识别编码方式,保证返回的不是乱码。倘若爬取过程没有出错,就把爬下来的新鲜的天气信息素材返回给变量html。用同样的方法,我们获取新鲜的图片库的素材也用同样的方法,返回给变量image。

    imagLink = []
    whetherInfo = parserHTMLWeather(html)
    name = 1
    for image in imagLink:
        print(image)
    for image in imagLink:
        downloadPicture(image,name)
        name += 1

回到main方法,我们要声明一个imagLink的列表,用来存放每个图库中每个图的地址,whetherInfo用来存储解析后的html的信息。打印image确定地址返回无误,因为在图库的源码中有豆瓣自己的大图地址和图片的地址,我们需要的是图片地址,确定无误后就可以逐个进行下载图片资源了。

先来看解析天气信息的parserHTMLWeather方法:

def parserHTMLWeather(html):
    try:
        dirt = {}
        soup = BeautifulSoup(html,"html.parser")
        place = soup.find(name = "head").find("title")
        dirt["place"] = str(place.string).split("-")[0]
        AnnoceTime = soup.find(name = 'div', attrs = {"class":"btitle"}).find("span")
        dirt["AnnoceTime"] = str(AnnoceTime.string)
        Everyday = AnnoceTime.find_parent().find_next_sibling().find_all(name = "div",class_ = "detail")
        for eachday in Everyday:
            info = eachday.find(name = "div",class_ = "day")
            thisDay = {}
            date = str(info.find(name = "div",class_ = "date").string)
            week = str(info.find(name = "div",class_ = "week").string)
            wdesc = str(info.find(name = "div",class_ = "wdesc").string)
            temp = str(info.find(name = "div",class_ = "temp").string)
            direct = str(info.find(name = "div",class_ = "direct").string)
            wind = str(info.find(name = "div",class_ = "wind").string)

            thisDay["date"] = date
            thisDay["week"] = week
            thisDay["wdesc"] = wdesc
            thisDay["temp"] = temp
            thisDay["direct"] = direct
            thisDay["wind"] = wind
            dirt[thisDay["date"]] = thisDay

        return dirt
    except:
        return {}

首先先声明dirt为一个字典,然后把html用beautifulSoup库对其进行解析,解析后的soup对象可以调用它的find方法和find_all方法开始寻找我们需要的信息所对应的标签。至于哪个信息对应哪个标签,可以在浏览器中用ctrl + F的快捷键调出搜索框。获取到我们需要的信息后,我们可以把它进行加工保存在每天的thisDay字典里,然后再把7天的thisDay字典加入dirt字典里,最后返回dirt字典。具体的加工方法就是用split方法切片、提取。当然也可以选择正则表达式,需要额外再引用re库。

然后是解析图片:

def parserHTMLPicture(imag,imagLink):
    try:
        soup = BeautifulSoup(imag,"html.parser")
#        next_url = soup.find(name = 'link',rel = 'next')['href']
#        next_page = getHTMLText(next_url)
        imagAddress = soup.find(name='div',class_ = 'photolst clearfix').find_all(name = 'img')
        for image in imagAddress:
            imagLink.append(image['src'])

        return imagLink
    except:
        return []

解析图片我们只需要把图片的地址获取到imagLink列表中即可。然后我们遍历这个列表,并且下载这些图片:

def downloadPicture(url,name):
    root = 'C:\\Users\\10990\\Pictures\\'#这里填保存的路径
    path = root + str(name) + '.jpg'
    try:
        if not os.path.exists(root):
            os.mkdir(root)
        if not os.path.exists(path):
            r = requests.get(url)
            with open(path,'wb') as f:
                f.write(r.content)
                f.close()
                print("文件保存成功")
        else:
            print("文件已存在")
    except:
        print("爬取失败")

在下载前我们要注意判断路径是否存在,若不存在要建立一个,在开始爬之前要留意是否已经爬取过,若已经存在则跳过。命名我是以数字顺序命名的,在后续调用中也更方便。

然后我们需要新建一个txt文件,用来保存本次发送的照片名字,注意该文件应该和代码的py文件保存在同一路径下。

回到main()方法

with open('pictureName.txt','r') as f:
        name = eval(f.read())
        f.close()
    with open('pictureName.txt','w') as f:
        newName = str(name + 1)
        f.write(newName)
        f.close()
    msgRoot = makeMessage(whetherInfo,name)
sendMsg(msgRoot)

然后我们读取当前的图片名,赋给name,再把name名加一后重新保存下来,这样每天发给女票的就是一张新的图片了。然后要把我们的天气信息和我们每天想说的话以及图片打包成一个email对象发送出去就行啦。

def makeMessage(dirt,image):
    #编辑消息
    print(dirt)
    message = dirt["place"]+' 今天 '
    items = {'wdesc','temp','direct','wind'}
    for item in items:
        message += dirt["\n        今天\n       "][item].strip('\n        ')+" "
    for temp in message.split(" "):
        if temp.find("℃") != -1:
            if eval(temp.split("℃")[0]) > 25:
                message += "今天很热,尽量别出门啦"
            elif eval(temp.split("℃")[0]) < 12:
                message += "今天很冷,注意保暖"
    if message.find("雨") != -1:
        message += " 出门的话记得带伞"
    print(message)

    #生成邮件对象
    msgRoot = MIMEMultipart('related')
    msgRoot['From'] = Header("我是发信人","utf-8")
    msgRoot['To'] = Header('我是收信人','utf-8')
    subject = '赴戍登程口占示家人'
    msgRoot['Subject'] = Header(subject,'utf-8')

    msgAlternative = MIMEMultipart('alternative')
    msgRoot.attach(msgAlternative)

    mail_msg = '''
    <p> 力微任重久神疲,再竭衰庸定不支。
        苟利国家生死以,岂因祸福避趋之?
        谪居正是君恩厚,养拙刚于戍卒宜。
        戏与山妻谈故事,试吟断送老头皮。
    </p>
    <p>'''+message+'''</p>
    <p><img src = "cid:image1"></p>
'''
    msgAlternative.attach(MIMEText(mail_msg,'html','utf-8'))

    catalog = 'C:\\Users\\10990\\Pictures\\' + str(image) + ".jpg"
    #指定图片为当前目录
    with open(catalog,'rb') as fp:
        msgImage = MIMEImage(fp.read())
        fp.close()

    #定义图片在ID,在HTML文本中引用
    msgImage.add_header('Content-ID','<image1>')
    msgRoot.attach(msgImage)
    return msgRoot

def sendMsg(message):
    mail_host = "smtp.qq.com"#要使用的smtp服务器
    mail_user = "*******"#用户名和密码
    mail_pass = "********"
    sender = '********'#发送者
    receivers = ['*******']#收信者,注意这里是一个列表,就是说可以群发,当然劝君莫浪~~
    try:
        smtpObj = smtplib.SMTP()
        smtpObj.connect(mail_host)
        smtpObj.ehlo()
        smtpObj.starttls()
        smtpObj.login(mail_user,mail_pass)
        smtpObj.sendmail(sender,receivers,message.as_string())
        print("邮件发送成功")
        smtpObj.quit()
    except smtplib.SMTPException:
        print("Error:无法发送邮件")

往后都是可以从网上找到的代码,当然了各位也可以更进一步,从网上爬取各种骚话,用同样的方式解析并加入email对象中,为了不吃狗粮小编决定交给各位自己发掘(其实就是懒)需要注意,图片我们只爬取了一页的图片,各位还可以自行添加代码,完成自动换页之后的爬取,因为图片有限,当我们的txt文件数大于18,即自动发送18天后,需要另外爬取第二页的图片。

另外,推荐把程序挂到服务器上面,做个定时发送。每天准点发送。这样妹子就可以天天收到你的云关怀啦。

记得让女票把你加入白名单,否则你发过去的邮件都会被投进垃圾箱的。

完整代码

欲获取代码,请关注我们的微信公众号【程序猿声】,在后台回复:pylove。即可下载。

微信公众号

推荐文章:10分钟教你用Python做个打飞机小游戏超详细教程

10分钟教你用Python打造一个AI贪吃蛇 愉快的开始 最近在修一门叫Python基础的课,然后匆忙之中做了这个AI贪吃蛇想交个大作业,结果老师的结课作业是给定了题目,我真是…… 首先说明一点哈,此AI非彼AI。今天要讲的AI贪吃蛇还是传统意义上遍历图的找路算法编写的,并不是利用机器学习进行学习控制的哈。 关于贪吃蛇 Python编写贪吃蛇的教程此前已经写过了,相关的传送门可以戳: 传送门: 10分钟教你用python打造贪吃蛇超详细教程... 阅读详情

相关推荐

手写Socket Web服务器:深入HTTP协议底层原理

HTTP协议是Web通信的基石,其本质是一套严格定义的文本格式与状态交互规范。理解它需回归传输层——TCP连接建立、请求响应格式(如状态行、头/体分隔符\r\n\r\n)、字符编码与字节长度一致性等核心原理。这些知识直接决定CORS拦截、中文乱码、Content-Length错误等高频问题的排查效率。在现代框架封装日益厚重的今天,亲手用Socket实现一个可被Chrome识别的极简Web服务器,成为掌握Web运行机制最有效的实践路径。本文即以DebugLZQ经典案例为蓝本,还原从URI解析、DNS查询、So

weixin_40192258的博客 534

【python】10分钟教你用python如何正确把妹

前言 今天没妹子约,刚好研究一下。如何用神奇的python打造一个把妹神器吧。看完这个,你们就能走向人生巅峰,迎娶白富美啦。 我知道你们想看看效果 image 当然啦,这只是测试版的效果,真正的版本可比这个厉害多啦。不过作为一个直男,另一个男的给小编发这个测试感觉还是有点怪怪的哈。 文:吉柏言 暑假来了,各位又不得不和男女朋友暂时分开2个月了!!长达两个月的时间里不能相见,你可知我多想...

infinitor的博客 738

SAP FICO 银企直联实战:从配置到异常处理的全流程解析

本文详细解析了SAP FICO银企直联的实战配置与异常处理全流程,涵盖银行主数据搭建、支付类配置、银行接口适配等关键步骤。通过实际案例分享,帮助用户掌握实时付款、余额监控和自动对账等核心功能,提升企业财务效率与安全性。特别针对常见问题如凭证重复付款、前置机UUID冲突等提供了实用解决方案。

weixin_29215815的博客 663

如何用python画动漫人物,用python画一个美女

大家早好、午好、晚好吖 ❤ ~对于上面漫小姐姐图,大家觉得好不好看呢这种极简的线条画出超具魅力的小姐姐图简直不要太击中小心脏接下来,我们就用python来实现一下,画出一个好看的少女~

chatgpt001的博客 9350

如何理解Apollo模型参考自适应控制MRAC

最近有了解到百度无人驾驶Apollo项目中的横向控制有用到MRAC(Model Reference Adaptive Control),于是便详细研究了一下这个控制方法,在此总结一下心得。 什么是MRAC MRAC控制系统的基本结构图如下所示: 它由两个环路组成,由控制器和受控对象组成内环,这一部分称之为可调系统,由参考模型和自适应机构组成外环。实际上,该系统是在常规的反馈控制回路上再附加一个参考模型和控制器参数的自动调节回路而形成。在该系统中,参考模型的输出或状态相当于给定一个动态性能指标,(通常,参考模

zmhzmhzm的博客 6480

保姆级教程:在RK3588平台上为IMX415 Sensor配置HDR2曝光(附完整代码与避坑点)

本文提供RK3588平台上为IMX415 Sensor配置HDR2曝光的详细教程,涵盖基础概念、限制条件、实战配置步骤及常见问题解决方案。通过完整代码示例和关键参数解析,帮助开发者高效实现HDR2曝光模式,提升图像质量并避开常见陷阱。

weixin_28685287的博客 283

程序员幸福时刻,用Python做了一个B站跳舞的小姐姐,满屏的美腿!

周末在家,天气好冷好冷啊,我们这边都下雪了!宅在家里没有啥事情,于是炖了只老母鸡,补补身子。 一边炖鸡汤,一边用Python码些好玩的脚本。辛苦了一个周末,菜鸟哥写了一个好玩的小脚本,赶紧跟大家分享一下。 B站上的漂亮的小姐姐真的好多好多,今天我们来玩一个来抓取B站上跳舞的小姐姐视频,并利用视频中大家的弹幕来绘制一个跳动弹幕的舞蹈视频,非常炫酷~~一起来看看吧。 01.弹幕抓取 首先,我们选定一个弹幕比较多的小姐姐舞蹈视频,并下载该视频,同时,利用以下程序来抓取小姐姐视频中的弹幕信息。 上述程序中,首先.

weixin_46737755的博客 1779

别把 ABAP 时间戳当数字算:TIMESTAMP / TIMESTAMPL 的语义、正确用法与项目级避坑指南

ABAP时间戳使用指南与常见陷阱 摘要:ABAP中的时间戳(TIMESTAMP/TIMESTAMPL)本质是UTC时间的数字表示,而非累计秒数。正确用法包括:直接比较时间戳顺序、使用CONVERT TIME STAMP进行时区转换、通过CL_ABAP_TSTMP计算时间差。关键注意事项:绝对不要对时间戳本身进行数学运算,否则会导致非法时间值。实际项目中需特别注意SAP Gateway的ETag处理、跨时区系统集成和CDS视图中的时间戳使用场景,避免将本地时间误存为UTC时间戳或在云迁移时产生时区问题。(14

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 343

【Python】用 Python 帮财务小妹生成 Excel 报表,小妹直说一辈子。。。

财务小妹萝卜哥,求助!人有三急,回见~萝卜财务小妹别啊,不能去!这,到底啥事啊萝卜财务小妹有一个超级繁琐的事情,不过感觉你和Python能帮我那你学Python吧,毕竟我也不能帮你一辈子萝...

fengdu78的博客 604

Android AICore的核心组件工作原理解析

AICore通过LoRA实现个性化适配Gemini Nano提供多模态智能Safety Features保障可信运行,构建了端侧AI的完整生态。这种设计不仅让手机等移动设备能处理复杂AI任务(如实时多模态交互),还通过隐私保护机制打破了传统云端AI的数据依赖,为未来“设备即AI基础设施”的愿景奠定了基础。输入触发:用户输入“刚提交了代码,等审核”→ 进入TEE加密处理。Gemini Nano基础生成:通过原始权重W_q生成初始回复候选。LoRA个性化微调:通过A'和B'计算ΔW,更新W_q。

1552

thermal系列(5)-DTSI中配置Thermal

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.youkuaiyun.com/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录thermal系列目录DTSI中配置ThermalDTSI节点类型描述CPU0的配置举例CPU核hot-plugging举例修改热缓解阈值DTSI的node中带有tracks-lowDTSI中关闭某个Thermal Zones thermal系列目录 thermal系列(1)-引言部分 thermal.

fulinux的博客 1232

Python编写个天气查询应用(可视化界面)

点击上方“蓝色字体”,选择“星标”公众号重磅干货,第一时间送达今天暂停Python每日一题,给大家推荐个Python项目!项目效果预览:一、获取天气信息使用python获...

4508

Nova — GPU/vGPU 虚拟机

目录 文章目录目录云主机使用显卡的实现方式虚拟显卡物理显卡直通物理显卡虚拟化 云主机使用显卡的实现方式 采用虚拟显卡 采用物理显卡直通 采用物理显卡虚拟化 虚拟显卡 虚拟显卡技术,主要用于虚拟机 Remote Console 领域,如:VNC(Virtual Network Computing,虚拟网络计算机),它能将完整的窗口界面通过网络,传输到另一台计算机的屏幕上。 VNC 主要由 VNC server 和 VNC viewer 两部分组成。用户需先将 VNC server 安装在被远程操控的计算

烟云的计算 2426

10分钟教你用python如何正确把妹_for day in everyday

今天没妹子约,刚好朋友研究一下python。让他教大家如何用神奇的python打造一个把妹神器吧。看完这个,你们就能走向人生巅峰,迎娶白富美啦。

m0_61499908的博客 509

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

10分钟教你用python如何正确把妹-不知道妹子为何生气?那是因为你没学python

前言 今天没妹子约,刚好研究一下。如何用神奇的python打造一个把妹神器吧。看完这个,你们就能走向人生巅峰,迎娶白富美啦。 我知道你们想看看效果 当然啦,这只是测试版的效果,真正的版本可比这个厉害多啦。不过作为一个直男,另一个男的给小编发这个测试感觉还是有点怪怪的哈。 文:吉柏言 暑假来了,各位又不得不和男女朋友暂时分开2个月了!!长达两个月的时间里不能相见,你可知我多想你啊,想知道你的城市下...

infinitor的博客 313

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

10分钟教你用python一行代码搞点大新闻

准备 相信各位对python的语言简洁已经深有领会了。那么,今天就带大家一探究竟。看看一行python代码究竟能干些什么大新闻。赶紧抄起手中的家伙,跟小编来试试吧。 首先你得先在命令行进入python。像下面一样。 &gt; python Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 08:06:12) [MSC v.1900 64 bi...

DENGFAHENG的博客 605

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Python撩妹实战——教你用微信每天给女朋友说晚安

能用朋友通红弄自动但凡一件事,稍微有些重复。我就考虑怎么样用程序来实现它。这里给各位程序员朋友分享如何每天给朋友定时微信发送”晚安“,故事,新闻,等等··· ···最好运行在服务器上,这样后台挂起来更方便。 能用Python解决的问题,都不是问题 人生苦短,我用Python。 Python学习裙:肆捌叁伍肆陆肆壹陆 准备 微信号 pip install wxpy pip ...

Python达人 6074

【python】10分钟教你用python打造贪吃蛇超详细教程

【python】10分钟教你用python打造贪吃蛇超详细教程 10分钟教你用python打造贪吃蛇超详细教程 在家闲着没妹子约, 刚好最近又学了一下python,听说pygame挺好玩的。今天就在家研究一下, 弄了个贪吃蛇出来。希望大家喜欢。 先看程序效果: 01 整体框架 平台:pycharm 关于pygame的安装这里就不在...

infinitor的博客 6584

10分钟教你用 Python 控制键盘和鼠标

​您仍在努力在计算机上双击或提交表单吗? 如果我告诉你我可以通过python提前写下相关的操作说明,让它帮你操作鼠标和键盘,但你却在和姐姐聊天,不是很神奇吗? 第一,Pyauogui库 我们可以首先安装pyauogui库,通过它我们可以编写一些Python脚本来控制鼠标和键盘。例如,可以定义鼠标的点击位置、键盘的输入时间等,实现所有要操作的软件应用程序的自动操作。值得一提的是,它可以...

1万+
上一篇: 10分钟教你用python做个打飞机(超详细超入门教程)附源代码下载
下一篇: 10分钟教你用python打造贪吃蛇超详细教程
DENGFAHENG
博客等级 码龄14年 36粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值