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性能优化的20条建议
Oct 25 Python
在Python中使用模块的教程
Apr 27 Python
Python使用turtule画五角星的方法
Jul 09 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
浅谈Python的垃圾回收机制
Dec 17 Python
在cmder下安装ipython以及环境的搭建
Oct 19 Python
Python 等分切分数据及规则命名的实例代码
Aug 16 Python
Python csv模块使用方法代码实例
Aug 29 Python
Python3 Tkinkter + SQLite实现登录和注册界面
Nov 19 Python
利用python在excel中画图的实现方法
Mar 17 Python
linux 下selenium chrome使用详解
Apr 02 Python
python实现感知机模型的示例
Sep 30 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模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
PHP实现的比较完善的购物车类
2014/12/02 PHP
Thinkphp无限级分类代码
2015/11/11 PHP
Symfony控制层深入详解
2016/03/17 PHP
简单解决微信文章图片防盗链问题
2016/12/17 PHP
php写app用的框架整理
2019/09/29 PHP
基于jQuery的弹出消息插件 DivAlert之旅(一)
2010/04/01 Javascript
javascript 函数使用说明
2010/04/07 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
JavaScript中数组的合并以及排序实现示例
2015/10/24 Javascript
基于javascript实现动态显示当前系统时间
2016/01/28 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
深入理解Vuex 模块化(module)
2017/09/26 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
浅谈微信JS-SDK 微信分享接口开发(介绍版)
2018/08/15 Javascript
Python构造函数及解构函数介绍
2015/02/26 Python
总结Python编程中三条常用的技巧
2015/05/11 Python
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
详解Python3之数据指纹MD5校验与对比
2019/06/11 Python
python中子类与父类的关系基础知识点
2021/02/02 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
挪威手表购物网站:Klokker
2016/09/19 全球购物
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
Napapijri西班牙在线商店:夹克、外套、运动衫等
2020/11/05 全球购物
新大陆软件面试题
2016/11/24 面试题
优纳科技软件测试面试题
2012/05/15 面试题
区级文明单位申报材料
2014/05/15 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
标准大学生职业生涯规划书写作指南
2014/09/18 职场文书
教师工作能力自我评价
2015/03/04 职场文书
教师节感想
2015/08/11 职场文书