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多进程同步Lock、Semaphore、Event实例
Nov 21 Python
修改Python的pyxmpp2中的主循环使其提高性能
Apr 24 Python
python 读写、创建 文件的方法(必看)
Sep 12 Python
深入理解Python中变量赋值的问题
Jan 12 Python
Python3如何解决字符编码问题详解
Apr 23 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
Dec 22 Python
Python3标准库总结
Feb 19 Python
python3人脸识别的两种方法
Apr 25 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
Aug 07 Python
基于python监控程序是否关闭
Jan 14 Python
套娃式文件夹如何通过Python批量处理
Aug 23 Python
如何用python绘制雷达图
Apr 24 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使用数组实现队列
2012/02/05 PHP
10款PHP开源商城系统汇总介绍
2015/07/23 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
PHP创建/删除/复制文件夹、文件
2016/05/03 PHP
php 使用redis锁限制并发访问类示例
2016/11/02 PHP
php 二维数组时间排序实现代码
2016/11/19 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
JS 分号引起的一段调试问题
2009/06/18 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
多种方法实现load加载完成后把图片一次性显示出来
2014/02/19 Javascript
实例代码详解jquery.slides.js
2015/11/16 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
2016/12/21 Javascript
vue中component组件的props使用详解
2017/09/04 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
微信小程序从注册账号到上架(图文详解)
2019/07/17 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
2020/08/27 Javascript
[00:06]Yes,it worked!小卡尔成功穿越时空加入战场!
2019/07/20 DOTA
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
2018/05/08 Python
python3实现磁盘空间监控
2018/06/21 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
2020/03/05 Python
python和node.js生成当前时间戳的示例
2020/09/29 Python
wedgwood加拿大官网:1759年成立的英国国宝级陶瓷餐具品牌
2018/07/17 全球购物
什么是岗位职责
2013/11/12 职场文书
小学门卫岗位职责
2013/12/17 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
大学生毕业鉴定
2014/01/31 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
纪检监察建议书
2014/05/19 职场文书
感恩母亲节活动总结
2015/02/10 职场文书
工程催款通知书
2015/04/17 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
《金色的草地》教学反思
2016/02/17 职场文书