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 ljust rjust center输出
Sep 06 Python
按日期打印Python的Tornado框架中的日志的方法
May 02 Python
Python基于分水岭算法解决走迷宫游戏示例
Sep 26 Python
Ubuntu安装Jupyter Notebook教程
Oct 18 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
Python 给某个文件名添加时间戳的方法
Oct 16 Python
TensorFlow2.0:张量的合并与分割实例
Jan 19 Python
使用Keras预训练模型ResNet50进行图像分类方式
May 23 Python
Pytorch转tflite方式
May 25 Python
Python 使用 PyQt5 开发的关机小工具分享
Jul 16 Python
python实现网页录音效果
Oct 26 Python
tensorflow+k-means聚类简单实现猫狗图像分类的方法
Apr 28 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
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
对text数据类型不支持代码页转换 从: 1252 到: 936
2011/04/23 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
TNC vs IO BO3 第二场2.13
2021/03/10 DOTA
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
Vue.js开发环境快速搭建教程
2017/03/17 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
Python中获取对象信息的方法
2015/04/27 Python
python里使用正则表达式的组嵌套实例详解
2017/10/24 Python
python 递归深度优先搜索与广度优先搜索算法模拟实现
2018/10/22 Python
centos7之Python3.74安装教程
2019/08/15 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
Python3 解决读取中文文件txt编码的问题
2019/12/20 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
工商管理专业实习生自我鉴定
2013/09/29 职场文书
小学信息技术教学反思
2014/02/10 职场文书
技术合作协议书范本
2014/04/18 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
销售开票员岗位职责
2015/04/15 职场文书
奖励通知
2015/04/22 职场文书
消费者理赔投诉书
2015/07/02 职场文书
给领导敬酒词
2015/08/12 职场文书
2015年中学体育教师工作总结
2015/10/23 职场文书
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL