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

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

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

Python Flask实现定时任务的不同方法详解

《PythonFlask实现定时任务的不同方法详解》在Flask中实现定时任务,最常用的方法是使用APScheduler库,本文将提供一个完整的解决方案,有需要的小伙伴可以跟随小编一起学习一下... 目录完js整实现方案代码解释1. 依赖安装2. 核心组件3. 任务类型4. 任务管理5. 持久化存储生产环境

基于Python编写自动化邮件发送程序(进阶版)

《基于Python编写自动化邮件发送程序(进阶版)》在数字化时代,自动化邮件发送功能已成为企业和个人提升工作效率的重要工具,本文将使用Python编写一个简单的自动化邮件发送程序,希望对大家有所帮助... 目录理解SMTP协议基础配置开发环境构建邮件发送函数核心逻辑实现完整发送流程添加附件支持功能实现htm

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU