一直以来,在CSDN上收到了很多朋友的帮助,今天上传自己写的一份代码和大家分享一下:

  1. 功能:每天定时给自己发送,当天的一些重大新闻,附送一句英语美文

  2. 思路:新闻信息是从界面新闻中截取的,包含三类:天下、中国、宏观、每日必读;二英语美文则是从,金山词霸中提取的。

  3. 代码 :

'''
每天定时
抓取界面网主要新闻
及金山 每日一句
发往微信
'''
import random
import time,urllib
import urllib.request
import lxml,lxml.etree
import json
import itchatimport requestsrecount = 0
def getpagedata(url):global recounttry:header = [{"User-Agent": "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"},{"User-Agent": "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"},{"User-Agent": "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"},{"User-Agent": "Opera/9.80(WindowsNT6.1;U;en)Presto/2.8.131Version/11.11"},{"User-Agent": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)"}]respon = urllib.request.Request(url,headers=header[random.randint(0,5)])pagespurce = urllib.request.urlopen(respon,timeout=8)time.sleep(5)if pagespurce.code!=200:print('---网页开启错误----',pagespurce.code)time.sleep(5)getpagedata(url)else:return pagespurce.read().decode('utf-8', 'ignore')except Exception as e:print('--%s-->-Error'%url,e)time.sleep(3)recount+=1if recount<4:getpagedata(url)else:return 0def hotnews(url,wbank):source = getpagedata(url)if type(source) ==str:mytree = lxml.etree.HTML(source)news = mytree.xpath('//ul[@class=\"top-news-view\"]//li')for item in news:title = item.xpath('.//div[@class=\"news-header\"]/h3/a/text()')[0]if title not in oldlist:print(title)oldlist.append(title)wbank.append(title)else:hotnews(url,wbank)def morningword(url):# text 获取字符串  content 获取字节 字节无法切片data = requests.get(url).textif type(data)==str:data= data.split('(')[1].split(')')[0]datas = json.loads(data)english = datas['sentence_list'][0]['content']chinese = datas['sentence_list'][0]['note']return ('     '+english+'  --- '+chinese)else:morningword(url)def login(namelist,urls):itchat.auto_login(hotReload=True)while True:localtime = time.asctime(time.localtime(time.time()))start = '10:06:12'if start in localtime:wbank = []msg = getnews(urls,wbank)print(namelist[0])for name in namelist[0]:men = itchat.search_friends(nickName=name)print(men)if len(men)!=0:un = men[0]['UserName']itchat.send(msg,toUserName=un)print('--%s--消息已发送---'%name)if len(namelist)>1:for group in namelist[1]:team = itchat.search_chatrooms(name=group)if len(team)!=0:tname = team[0]['UserName']itchat.send(msg, toUserName=tname)print('------<---%s--->-----'%group)else:time.sleep(1)print(localtime)def technology(url,num,wbank):source = getpagedata(url)if type(source) == str:mytree = lxml.etree.HTML(source)news = mytree.xpath('//div[@id=\"load-list\"]//div[@class=\"news-view left card\"]//div[@class=\"news-header\"]')count = 0for item in news:title = item.xpath('./h3/a/text()')[0]if title not in oldlist and count<num-1:print(title)count+=1oldlist.append(title)wbank.append(title)else:technology(url,num,wbank)def getnews(urls,wbank):for url in urls:hotnews(url,wbank)if len(wbank)<11:num = 11 - len(wbank)technology(url5,num,wbank)# 每日一句(英语)words = morningword(url3)print(words)msg = '                  Morning Call  ' + '\n' + '今日新闻:' + '\n'for i in range(len(wbank)):line = str(i + 1) + '. ' + wbank[i] + '\n\n'msg += linemsg += 'Greeting:'msg += '\n'msg += wordsreturn msgif __name__ == '__main__':# 当 第一部分内容没有更新时 爬取第二部分内容url1 = 'http://www.jiemian.com/lists/32.html'  # 天下url2 = 'http://www.jiemian.com/lists/71.html'  # 中国url4 = 'http://www.jiemian.com/lists/174.html'  # 宏观url5 = 'http://www.jiemian.com/lists/6.html'  # 科技url3 = 'http://sentence.iciba.com/index.php?callback=jQuery19008754676102615269_\1509697420268&c=dailysentence&m=getNewsSentence&pageId=0\&size=15&_、=1509697420272'urls = [url1, url2, url4]# 新建两条列表专门存储数据 一条存储历史数据(避免标题新闻未更新)  一条存储将要发送的数据oldlist = []# namelist = ([昵称列表],[群聊列表])login(namelist,urls)while True:if len(oldlist)>120:oldlist.pop(0)time.sleep(5)

Note. 上述有一部分内容有缺陷,就是每次重新运行软件时,之前保留的新闻历史记录会被清空,有兴趣的朋友,可以将 历史记录 写入文本,重新运行软件时,读取文本,

Morning Greeting_微信新闻相关推荐

  1. 谣言止于“较真”,腾讯新闻推出微信新闻辟谣小程序

    今天,腾讯较真事实查证平台正式公布微信小程序版本. 腾讯自带庞大流量,可帮助其搭建出高效的辟谣平台,较真事实查证平台所具备的强大辟谣力正是来源于此.而随着"较真小程序"的上线,流量 ...

  2. 【每日微信新闻早报简报】10月11日 星期五

    [今日新闻早报]   10月11日    星期五    农历九月十三 1.11日零时起,全国铁路实施新的列车运行图,增开旅客列车160列: 2.2019胡润百富榜:马云家族第三次成为中国首富,马化腾以 ...

  3. python自动发微信新闻_微信群总有人发广告?用Python写一个自动化机器人消灭他...

    作者 | 刘早起 出品 | 早起Python(ID: zaoqi-python) 或者是一声不吭的去骚扰每一个群成员. 虽然不清楚是什么能够驱使他们这样不折不扣的努力成为最强微信群牛皮癣(可能是钞能力 ...

  4. 微信基础服务肯定不收费

    微信要收费了?连日来,发改委某专家的一句"如果微信不该收费,那短信为什么要收费呢?"激起了人们对于"微信是否会进入收费时代"的极大关注.3月31日,工信部部长苗 ...

  5. 微信 android 闪退问题怎么解决方法,微信闪退怎么办 微信多开软件闪退解决方法...

    微信多开软件闪退解决问题处理教程 1.首先我们先看看自己手机系统是什么版本的,如果是安卓的要确定一下自己的系统是否是2.1以上的版本!若不是需要进入官网来下载适合自己系统的.查看自己手机版本的方法.点 ...

  6. 微信收费持续发酵 或演变为运营商与腾讯的博弈

    微信是否收费这个话题正在持续发酵.腾讯已经明确表示,不会向用户收取基本服务费用,微信用户起码现在可以放心,不会多出一块支出.年初,香港运营商PCCW mobile运营商首开微信收费先例,向微信用户提供 ...

  7. 企鹅号一万阅读能有多少收益?企鹅号平台补贴怎么获得

    首先介绍下企鹅自媒体平台的优势 企鹅媒体平台由腾讯推出,发布的文章将在天天快报.腾讯新闻客户端.微信新闻插件.手机QQ新闻插件.QQ公众号.手机腾讯网.QQ浏览器等 平台渠道进行一键分发,所以流量是相 ...

  8. 短视频不为人知的素材来源 以及平台推荐的黑盒机制

    快餐文化,貌似短视频,相较于文字等信息,更为人所接受. 什么?又是10亿补贴,到处鼓励小视频创作.大多数觉得和自己无关,其实是自己做都不想做. 快手.火山直播.秒拍.QQ公众空间,别人怎么做的?是怎么 ...

  9. github star整理

    1.https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh/blob/master/README-cn.md 这是现在已经停止维护的下拉刷 ...

最新文章

  1. 支付宝架构师眼中的高并发架构
  2. android 程序闪退 log,写了一个android小程序,测试的时候闪退,然鹅log并没有报错...
  3. windows下gdb的下载和安装使用初步
  4. mybatis-批量更新
  5. 01Struts 2
  6. python使用rabbitmq阻塞_python – Celery/RabbitMQ unacked消息阻塞队列?
  7. 计算机学硕缩招,专硕扩招、学硕缩招!又有院校初试科目改了!本周这些院校发布最新消息!...
  8. 地图坐标拾取【获取指定地点经纬度】
  9. 5G网络架构、网络接口及协议栈
  10. hlws如何修改服务器密码,线切割hl控制系统输入法操作说明
  11. 发布LumaQQ.NET 2008
  12. 有关AntDesign的简单学习
  13. java模拟器 能玩sisx_塞班sisx模拟器
  14. 【MOS管电平转换电路的一点思考】
  15. Mina中的zkApp交易snark
  16. 痞子衡嵌入式:记录i.MXRT1060驱动LCD屏显示横向渐变色有亮点问题解决全过程(解答篇)...
  17. python视频教程410集免费_Python Web开发—进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程...
  18. Scrapy学习过程之二:架构及简单示例
  19. 北京电台“广播三下乡” 徐德亮演唱传统曲艺
  20. Unity鼠标滚轴缩放大小

热门文章

  1. Optional int parameter 'pageNo' is present but cannot be translated into a null
  2. office word-发送错误报告
  3. 告别2008之汶川大地震
  4. Android---给Linearlayout设置边框+弧度角
  5. 浅谈sleep()和wait()
  6. 复合函数连续的反例及证明
  7. 【DaVinci Developer工具实战】02 - 软件设计编辑器
  8. 可信计算机组成部门的事,一文了解可信计算基(TCB):信息安全的基础
  9. 力扣-55.跳跃游戏
  10. 解决集成百度定位SDK获取不到定位信息的问题