Python代码实现中国日报网双语文章订阅至邮箱
import requests
from lxml import etree
import random
import smtplib
import requests
from email.mime.text import MIMEText
import re
import schedule
import time#请求连接获取文章内容
def deal_url(url):header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}proxyIPs = ['27.188.64.70','163.204.246.139','121.13.252.60','180.118.247.69','111.75.223.9','1.193.244.92']proxyIP = random.choice(proxyIPs)proxies = {'http': proxyIP,'https': proxyIP}html = requests.get(url,proxies).textreturn html#获取更新的链接
def geturls():url = 'https://language.chinadaily.com.cn/news_bilingual/'html = deal_url(url)alist = [i.start() for i in re.finditer('gy_box_txt2',html)] #查找到首页中包含文章的链接起始位置da = []urllist = []for i in range(len(alist)):dd = html[alist[i]+68:alist[i]+150] #截取链接字段if dd.count('"')>=2:da = [i.start() for i in re.finditer('"',dd)] #定位到超链接引号数组位置dd = dd[da[0]+1:da[1]] #提取两个引号中的字段urllist.append(dd) #取到的链接存入列表return urllist#获取到正文和标题
def getContent():#随机获取一篇文章ran = random.randint(0,len(geturls())-1)url = 'https:'+geturls()[0]html = deal_url(url)html0 = etree.HTML(html)#分割出标题title0 = ''title = [i.start() for i in re.finditer('main_title1',html)]tit = html[title[0]+12:title[0]+100]a = tit.index('>')b = tit.index('<')title0 = tit[a+1:b]#分割出正文部分datas = ''for i in range(1,100,1):data = str(html0.xpath('//*[@id="Content"]/p['+str(i)+']/text()'))ss = '\xa0|\[\]|\"]|\[\"|\[\'|\'\]' #正则匹配去除[''],[""]data = re.sub(ss,'',data)data = re.sub(r'\\xa0','',data) #正则匹配去除\xa0data += '\n'*2if data.find('来源:')<=0:datas+=dataelse:breakreturn title0,datas#邮箱发送
def sendtoEmail(): msg = MIMEText(getContent()[1]) #发送正文部分msg["Subject"] = '【原视界文章推送】'+getContent()[0] #发送标题部分msg["From"] = usermsg["To"] = totry:s = smtplib.SMTP_SSL("smtp.qq.com", 465)s.login(user, pwd)s.sendmail(user, to, msg.as_string())s.quit()print("发送成功!",time.ctime(time.time()))except smtplib.SMTPException as e: print ("发送出错,%s" %e)#设置定时发送
def send_mail_by_schedule():schedule.every().day.at("12:00").do(sendtoEmail)schedule.every().day.at("18:00").do(sendtoEmail)while True:schedule.run_pending()time.sleep(1)if __name__=="__main__":print('=======订阅系统=======')global user,pwd,touser = input('请输入QQ号:')+'@qq.com'pwd = input('请输入邮箱授权码:')to = input('请输入订阅号:')+'@qq.com'print('虫子管家已为您开启订阅,请勿退出此程序并保持网络通畅,订阅文章于每天12:00和18:00准时发送至您的邮箱!')send_mail_by_schedule()
Python代码实现中国日报网双语文章订阅至邮箱相关推荐
- [Python爬虫案例]-中国古诗网
[Python爬虫案例]-中国古诗网 看懂代码,你需要相关知识 爬虫必备知识 只是想得到目标的话,直接运行就好了 import requests import re import jsondef pa ...
- Python爬取中国知网文献、参考文献、引证文献
转载自博客园文章作为学习资料,代码及相关介绍非常详细.原文链接见Python爬取 中国知网文献.参考文献.引证文献
- python爬取中国天气网天气图标
python爬取中国天气网天气图标 准备工作 天气预报图例网址:http://www.weather.com.cn/static/html/legend.shtml 安装requests:pip in ...
- python实现微信hook_GitHub - gemgin/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...
wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...
- python实现微信hook_GitHub - redtips/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...
wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...
- python实现微信hook_GitHub - zhouxionger/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...
wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...
- python hook微信_GitHub - 15993248973/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...
wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...
- hook微信 python_GitHub - zkqiang/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...
wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...
- 贝壳采集器: 中国日报网 数据采集
中国日报网 数据采集 字段:新闻名称.日期.详细信息.图片 功能:添加字段.修改列名.删除字段.深入采集.添加图片.下载数据 本文就介绍了如何使用贝壳采集器采集 中国日报网 的基本操作步骤 一.插件安 ...
最新文章
- 暗夜ト星ノ冥土馆~ぷにゅぷりXX 汉化补丁
- Android开发视频教学第一季(1-16集)视频源码下载
- Netty学习笔记(二) 实现服务端和客户端
- 成本要素区分成本中心
- 逻辑回归模型 python_机器学习-逻辑回归分析(Python)
- Sublime text使用快捷键
- 【CodeForces - 255C】Almost Arithmetical Progression (dp,离散化)
- 信息学奥赛C++语言:趣味整数2(亲密数)
- CentOS下Composer的安装和使用
- VC限制只能输入常规数字的CEdit控件
- 鲍鱼的“几头”是什么意思?什么样的好吃?
- Maven下载jar包失败的原因- 解决方法汇总
- oracle 如何查看一个表属于哪一个数据文件,如何查看某一表空间的数据文件都分布了哪些数据对象...
- Step by Step-构建自己的ORM系列-ORM改进方案思考(上)
- Linux下 lnmp一键安装
- CNNIC发布第39次《中国互联网络发展状况统计报告》
- linux7重置密码,centos7重置密码
- 考拉海购成重构互联网版图的最大“变量”
- 小白学NLP学习笔记-入门
- WebSocket无法连接问题
热门文章
- Java JCEF集成Chromium
- jquery+ajx post/get 实例
- 认识哈希函数和哈希表
- 乌丹一中2021高考成绩查询,2021年赤峰高考状元名单公布,赤峰文理科状元是谁多少分...
- 鸟哥的Linux私房菜(基础篇)- 第二十一章、系统配置工具(网络与打印机)与硬件侦测
- QQ卡丁车:腾讯自主研发的联网对战赛车游戏
- 什么是DHCP?为什么要用DHCP?(中科三方)
- 数据保护新愿景:欧盟GDPR十个误解与争议
- 2023年华为认证HCIA云计算题库(H13-511)
- 获取并显示服务器数据,客户端获取服务器数据解析