每天定时给你的女朋友发送睡前小故事其一

2023-11-25 22:20

本文主要是介绍每天定时给你的女朋友发送睡前小故事其一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是一个爬取故事,每天定时发送的案例,发送给谁呢?可以发送给自己的女朋友,什么?不可能有女朋友?那就好好练习一下代码,学会之后说不准哪天就用到了,不对吗?

代码主要分成两部分,第一部分是爬取故事网站,然后把故事的连接保存到文件中。代码部分如下

    def request_html(self,url,title_url):response = requests.get(url=url,headers=self.headers).content.decode('utf-8')tree = etree.HTML(response)title = tree.xpath('.//div[@id="Mhead2_0"]//dd//a/text()')href = tree.xpath('.//div[@id="Mhead2_0"]//dd//a/@href')href = ["http://www.tom61.com"+hre for hre in href]for t,h in zip(title,href):dict_story = {}dict_story[t] = htitle_url.append(dict_story)print(title_url)# json_str = json.dumps(title_url,ensure_ascii=False)with open('故事.json','w',encoding='utf-8') as f:json.dump(title_url,f,ensure_ascii=False)#爬取小故事def crawlStory(self,endpage):title_url = []url = 'http://www.tom61.com/ertongwenxue/shuiqiangushi/index.html'self.request_html(url,title_url)for i in range(2, endpage):url = 'http://www.tom61.com/ertongwenxue/shuiqiangushi/index_%s.html' % (i)self.request_html(url,title_url)

第二部分则是获取url,然后解析,把故事发送到她的邮箱中的代码,代码如下

    #发送小故事到邮箱当中def sendStory(self):with open(r'F:\reptile\第二周\第五天\故事.json', 'r', encoding='utf-8') as f:content = f.read()story = json.loads(content)story_url = random.choice(story)for k, v in story_url.items():name = kurl = vresponse = requests.get(url=url, headers=self.headers).content.decode('utf-8')tree = etree.HTML(response)content_list = tree.xpath('.//div[@class="t_news_txt"]//text()')content = "\n".join(content_list)print(content)self.sendemail(name,content,'66666666@qq.com')# 发送邮箱的函数def sendemail(self,subject,content,recver):subject = subject  # 邮件主题content = content  # 邮件内容sender = "88888888@qq.com"  # 发送者的邮箱recver = recver  # 接收者的邮箱,可以是一个也可以是多个,多个的话要使用recver.split(",\n")转换格式password = "xxxxxxxxxxxxxx"  # 授权码部分message = MIMEText(content, "plain", "utf-8")  # 设置格式,加入邮件内容message["Subject"] = subjectmessage["To"] = recvermessage["From"] = sendertry:smtp = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 使用的服务器和端口,可以是qq的也可以是163的smtp.login(sender, password)  # 登录邮箱smtp.sendmail(sender, recver.split(",\n"), message.as_string())  # 发送邮件smtp.close()  # 关闭服务器print('发送成功')except:print('出现异常')

完整的代码如下

import requests
from fake_useragent import UserAgent
from lxml import etree
import json
import smtplib  # 登陆邮件服务器,进行邮件发送
from email.mime.text import MIMEText  # 负责构建邮件格式
import randomclass Story():def __init__(self):self.ua = UserAgent()self.useragent = self.ua.randomself.headers = {'User-Agent': self.useragent}#爬取保存小故事到文件中def request_html(self,url,title_url):response = requests.get(url=url,headers=self.headers).content.decode('utf-8')tree = etree.HTML(response)title = tree.xpath('.//div[@id="Mhead2_0"]//dd//a/text()')href = tree.xpath('.//div[@id="Mhead2_0"]//dd//a/@href')href = ["http://www.tom61.com"+hre for hre in href]for t,h in zip(title,href):dict_story = {}dict_story[t] = htitle_url.append(dict_story)print(title_url)# json_str = json.dumps(title_url,ensure_ascii=False)with open('故事.json','w',encoding='utf-8') as f:json.dump(title_url,f,ensure_ascii=False)#爬取小故事def crawlStory(self,endpage):title_url = []url = 'http://www.tom61.com/ertongwenxue/shuiqiangushi/index.html'self.request_html(url,title_url)for i in range(2, endpage):url = 'http://www.tom61.com/ertongwenxue/shuiqiangushi/index_%s.html' % (i)self.request_html(url,title_url)#发送小故事到邮箱当中def sendStory(self):with open(r'F:\reptile\第二周\第五天\故事.json', 'r', encoding='utf-8') as f:content = f.read()story = json.loads(content)story_url = random.choice(story)for k, v in story_url.items():name = kurl = vresponse = requests.get(url=url, headers=self.headers).content.decode('utf-8')tree = etree.HTML(response)content_list = tree.xpath('.//div[@class="t_news_txt"]//text()')content = "\n".join(content_list)print(content)self.sendemail(name,content,'66666666@qq.com')# 发送邮箱的函数def sendemail(self,subject,content,recver):subject = subject  # 邮件主题content = content  # 邮件内容sender = "88888888@qq.com"  # 发送者的邮箱recver = recver  # 接收者的邮箱,可以是一个也可以是多个,多个的话要使用recver.split(",\n")转换格式password = "xxxxxxxxxxxxxx"  # 授权码部分message = MIMEText(content, "plain", "utf-8")  # 设置格式,加入邮件内容message["Subject"] = subjectmessage["To"] = recvermessage["From"] = sendertry:smtp = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 使用的服务器和端口,可以是qq的也可以是163的smtp.login(sender, password)  # 登录邮箱smtp.sendmail(sender, recver.split(",\n"), message.as_string())  # 发送邮件smtp.close()  # 关闭服务器print('发送成功')except:print('出现异常')if __name__ == '__main__':story = Story()# story.crawlStory(3)story.sendStory()

 

这篇关于每天定时给你的女朋友发送睡前小故事其一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/424711

相关文章

豆包 MarsCode 不允许你还没有女朋友

在这个喧嚣的世界里,爱意需要被温柔地唤醒。为心爱的她制作每日一句小工具,就像是一场永不落幕的浪漫仪式,每天都在她的心田播撒爱的种子,让她的每一天都充满甜蜜与期待。 背景 在这个瞬息万变的时代,我们都在寻找那些能让我们慢下来,感受生活美好的瞬间。为了让这份浪漫持久而深刻,我们决定为女朋友定制一个每日一句小工具。这个工具会在她意想不到的时刻,为她呈现一句充满爱意的话语,让她的每一天都充满惊喜和感动

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

ActiveMQ—消息特性(延迟和定时消息投递)

ActiveMQ消息特性:延迟和定时消息投递(Delay and Schedule Message Delivery) 转自:http://blog.csdn.net/kimmking/article/details/8443872 有时候我们不希望消息马上被broker投递出去,而是想要消息60秒以后发给消费者,或者我们想让消息没隔一定时间投递一次,一共投递指定的次数。。。 类似

Android中如何实现adb向应用发送特定指令并接收返回

1 ADB发送命令给应用 1.1 发送自定义广播给系统或应用 adb shell am broadcast 是 Android Debug Bridge (ADB) 中用于向 Android 系统发送广播的命令。通过这个命令,开发者可以发送自定义广播给系统或应用,触发应用中的广播接收器(BroadcastReceiver)。广播机制是 Android 的一种组件通信方式,应用可以监听广播来执行

61.以太网数据回环实验(4)以太网数据收发器发送模块

(1)状态转移图: (2)IP数据包格式: (3)UDP数据包格式: (4)以太网发送模块代码: module udp_tx(input wire gmii_txc ,input wire reset_n ,input wire tx_start_en , //以太网开始发送信

Jasperreports+jaspersoft studio 实现单个或多个jrxml(jasper)文件生成一个pdf文件,并利用Servlet发送该pdf文件到浏览器中展示

Jasperreports+jaspersoft studio 实现单个或多个jrxml(jasper)文件生成一个pdf文件,并利用Servlet发送该pdf文件到浏览器中展示; 代码如下: Demo07.jrxml <?xml version="1.0" encoding="UTF-8"?><!-- Created with Jaspersoft Studio version 6.6.

145-Linux权限维持Rootkit后门Strace监控Alias别名Cron定时任务

参考 【权限维持】Linux&Rootkit后门&Strace监控&Alias别名&Cron定时任务_alias ls='alerts(){ ls $* --color=auto;python -c "-CSDN博客 参考 FlowUs 息流 - 新一代生产力工具 权限维持-Linux-定时任务-Cron后门 利用系统的定时任务功能进行反弹Shell 1、编辑后门反弹shell脚本

环形定时任务 原理

业务背景 在稍微复杂点业务系统中,不可避免会碰到做定时任务的需求,比如淘宝的交易超时自动关闭订单、超时自动确认收货等等。对于一些定时作业比较多的系统,通常都会搭建专门的调度平台来管理,通过创建定时器来周期性执行任务。如刚才所说的场景,我们可以给订单创建一个专门的任务来处理交易状态,每秒轮询一次订单表,找出那些符合超时条件的订单然后标记状态。这是最简单粗暴的做法,但明显也很low,自己都下不去手写

Spring 创建定时任务

我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信、邮件之类的操作,也可能会定时地检查和监控一些标志、参数等。 创建定时任务 在Spring Boot中编写定时任务是非常简单的事,下面通过实例介绍如何在Spring Boot中创建定时任务,实现每过5秒输出一下当前时间。 在Spring Boot的主类中加入@EnableScheduling注解,启用定