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代码实现中国日报网双语文章订阅至邮箱相关推荐

  1. [Python爬虫案例]-中国古诗网

    [Python爬虫案例]-中国古诗网 看懂代码,你需要相关知识 爬虫必备知识 只是想得到目标的话,直接运行就好了 import requests import re import jsondef pa ...

  2. Python爬取中国知网文献、参考文献、引证文献

    转载自博客园文章作为学习资料,代码及相关介绍非常详细.原文链接见Python爬取 中国知网文献.参考文献.引证文献

  3. python爬取中国天气网天气图标

    python爬取中国天气网天气图标 准备工作 天气预报图例网址:http://www.weather.com.cn/static/html/legend.shtml 安装requests:pip in ...

  4. python实现微信hook_GitHub - gemgin/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...

    wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...

  5. python实现微信hook_GitHub - redtips/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...

    wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...

  6. python实现微信hook_GitHub - zhouxionger/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...

    wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...

  7. python hook微信_GitHub - 15993248973/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...

    wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...

  8. hook微信 python_GitHub - zkqiang/wechathook: 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取...

    wechathook 借助微信hook,拦截修改某些call,填充进我们的Python代码,进行微信公众号文章的爬取 注入器 注入dll进程序中 DLL 实现hook功能,申请内存,修改call,在里 ...

  9. 贝壳采集器: 中国日报网 数据采集

    中国日报网 数据采集 字段:新闻名称.日期.详细信息.图片 功能:添加字段.修改列名.删除字段.深入采集.添加图片.下载数据 本文就介绍了如何使用贝壳采集器采集 中国日报网 的基本操作步骤 一.插件安 ...

最新文章

  1. 暗夜ト星ノ冥土馆~ぷにゅぷりXX 汉化补丁
  2. Android开发视频教学第一季(1-16集)视频源码下载
  3. Netty学习笔记(二) 实现服务端和客户端
  4. 成本要素区分成本中心
  5. 逻辑回归模型 python_机器学习-逻辑回归分析(Python)
  6. Sublime text使用快捷键
  7. 【CodeForces - 255C】Almost Arithmetical Progression (dp,离散化)
  8. 信息学奥赛C++语言:趣味整数2(亲密数)
  9. CentOS下Composer的安装和使用
  10. VC限制只能输入常规数字的CEdit控件
  11. 鲍鱼的“几头”是什么意思?什么样的好吃?
  12. Maven下载jar包失败的原因- 解决方法汇总
  13. oracle 如何查看一个表属于哪一个数据文件,如何查看某一表空间的数据文件都分布了哪些数据对象...
  14. Step by Step-构建自己的ORM系列-ORM改进方案思考(上)
  15. Linux下 lnmp一键安装
  16. CNNIC发布第39次《中国互联网络发展状况统计报告》
  17. linux7重置密码,centos7重置密码
  18. 考拉海购成重构互联网版图的最大“变量”
  19. 小白学NLP学习笔记-入门
  20. WebSocket无法连接问题

热门文章

  1. Java JCEF集成Chromium
  2. jquery+ajx post/get 实例
  3. 认识哈希函数和哈希表
  4. 乌丹一中2021高考成绩查询,2021年赤峰高考状元名单公布,赤峰文理科状元是谁多少分...
  5. 鸟哥的Linux私房菜(基础篇)- 第二十一章、系统配置工具(网络与打印机)与硬件侦测
  6. QQ卡丁车:腾讯自主研发的联网对战赛车游戏
  7. 什么是DHCP?为什么要用DHCP?(中科三方)
  8. 数据保护新愿景:欧盟GDPR十个误解与争议
  9. 2023年华为认证HCIA云计算题库(H13-511)
  10. 获取并显示服务器数据,客户端获取服务器数据解析