Python实现利用163邮箱远程关电脑脚本


Posted in Python onFebruary 22, 2018

学了一个礼拜Python之后写的,代码很粗糙,只是为了完成利用163邮箱远程关电脑功能。直接把代码发上来吧。要执行的话得先安装一些模块,看import语句。

十月初写的,写完这个之后就没怎么写python了,忘得厉害。

  • 本来想从mail.163.com模拟登录的,但这个网页提交按钮是个, 有点复杂,搞了几个小时搞不定。
  • 我就绕了一下,从http://reg.163.com/logins.jsp 登录。这个页面登录会被拦截,还是到不了邮箱。但确实是登录成功,我们能得到一个登录认证。
  • 再访问http://entry.mail.163.com,这样就登录邮箱成功了,但因为进了邮箱之后,页面也是太复杂了。还是不好拿到邮件信息。
  • 从第三步取得sid,生成一个URL,从这个URL直接访问邮件的XML文档页面。
  • 然后就简单啦,把页面抓下来解析一下邮件内容,按照邮件内容执行命令。所以其实不止能关电脑,在windows下还能远程写个批处理脚本。修改一下代码,linux也能执行。

halla.py

import requests
import mechanicalsoup
import bs4
import re
import TEST
import time
import argparse
from datetime import datetime
import lxml

parser = argparse.ArgumentParser(description='Login to GitHub.')
parser.add_argument("username")
parser.add_argument("password")
args = parser.parse_args()

n = 0
startime = datetime.strptime(datetime.now().strftime('%Y-%m-%d %H:%M:%S'),'%Y-%m-%d %H:%M:%S')
while True:
 #打开“浏览器”
 browser = mechanicalsoup.Browser()
 #第一个页面url
 url = "http://reg.163.com/logins.jsp?type=1&product=mail163&url=http://entry.mail.163.com/coremail/fcg/ntesdoor2?lightweight%3D1%26verifycookie%3D1%26language%3D-1%26style%3D1"
 #打开网易登录页面
 login_page = browser.get(url)
 #输入账户密码然后提交表单
 login_form = login_page.soup.select("#fLogin")[0]
 login_form.select("#username")[0]['value'] = args.username
 login_form.select("#password")[0]['value'] = args.password
 page2 = browser.submit(login_form, login_page.url)
 #获取page2内容
 page2_soup = bs4.BeautifulSoup(page2.content)
 #用page2的cookies登录网易邮箱
 cookie = page2.cookies.get_dict()
 page3 = browser.get('http://entry.mail.163.com/coremail/fcg/ntesdoor2')
 #获取page3的url中的sid,给出XMLurl
 sid = re.findall(r'(?<==).*(?=&)',page3.url)
 XMLurl = 'http://mail.163.com/js6/s?sid='+sid[0]+'&func=mbox:listMessages&topNav_mobileIcon_show=1&TopTabReaderShow=1&TopTabLofterShow=1&welcome_welcomemodule_mailrecom_click=1&LeftNavfolder1Click=1&mbox_folder_enter=1'
 #打开XMLurl页面,获取邮件
 page4 = browser.post(XMLurl)

 with open(r'q.xml','w',encoding='utf-8') as q:
  q.write(page4.text)

 TEST.PPP(r'q.xml',startime).ppp()
 n+=1
 print("循环执行第"+str(n)+'次')
 time.sleep(30)

TEST.py

import lxml.etree
import os
from datetime import datetime


class PPP():
 def __init__(self, src, startime):
  self.src = src
  self.startime = startime

 def ppp(self):
  parser = lxml.etree.XMLParser(recover=True)
  tree = lxml.etree.parse(self.src, parser)
  root = tree.getroot()
  array = root.find('array')

  for objects in array:
   FLAG = False
   for items in objects:
    if items.get('name') == 'subject':
     if items.text == '999':
      FLAG = True

    if items.get('name') == 'sentDate':
     raw_sentData = items.text
     sentData = datetime.strptime(raw_sentData,'%Y-%m-%d %H:%M:%S')
     if self.startime<sentData and FLAG==True:
      print('shutdown -s -t 60')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
wxpython中自定义事件的实现与使用方法分析
Jul 21 Python
python中的break、continue、exit()、pass全面解析
Aug 05 Python
Python基于PyGraphics包实现图片截取功能的方法
Dec 21 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
Apr 25 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
python中正则表达式 re.findall 用法
Oct 23 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
python实现实时视频流播放代码实例
Jan 11 Python
使用Keras实现简单线性回归模型操作
Jun 12 Python
深入探讨opencv图像矫正算法实战
May 21 Python
Python&Matlab实现樱花的绘制
Apr 07 Python
Python3.4实现远程控制电脑开关机
Feb 22 #Python
python实现微信远程控制电脑
Feb 22 #Python
Python标准库笔记struct模块的使用
Feb 22 #Python
python实现手机通讯录搜索功能
Feb 22 #Python
Python实现通讯录功能
Feb 22 #Python
Python SQLite3简介
Feb 22 #Python
Python Web程序部署到Ubuntu服务器上的方法
Feb 22 #Python
You might like
PHP文件读写操作之文件写入代码
2011/01/13 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
JavaScript对象创建及继承原理实例解剖
2013/02/28 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
2015/03/12 Javascript
JavaScript中标识符提升问题
2015/06/11 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
jQuery ajax全局函数处理session过期后的ajax跳转问题
2016/06/03 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
原生js实现倒计时--2018
2017/02/21 Javascript
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
node使用promise替代回调函数
2018/05/07 Javascript
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
Python中functools模块的常用函数解析
2016/06/30 Python
Python heapq使用详解及实例代码
2017/01/25 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
canvas绘制视频封面的方法
2018/02/05 HTML / CSS
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
经典促销广告词大全
2014/03/19 职场文书
党的群众路线教育实践活动总结报告
2014/04/28 职场文书
财务负责人任命书
2014/06/06 职场文书
计算机求职信
2014/07/02 职场文书
2014党的群众路线教育实践活动总结材料
2014/10/31 职场文书
开业典礼致辞
2015/07/29 职场文书
2016年五一劳动节专题校园广播稿
2015/12/17 职场文书
比赛口号霸气押韵
2015/12/24 职场文书
关于JavaScript轮播图的实现
2021/11/20 Javascript