还在因常常忘记关电脑而烦恼吗?小编教你一招,一封邮件轻轻松松搞定

原标题:运用Python爬虫实现远程控制电脑关机

在大一时,我们老师教过我们远程电脑关机,但那个代码比较多,而且我也没有实现。现在,通过这个寒假学习Python爬虫,实现这个过程好像变得非常简单了。

1.完成这个程序需要的模块

Python自带的模块:time,os,
需要安装的第三方模块:bs4、requests
按 win+R 在弹出来的窗口中输入cmd,来到命令窗口
bs4: pip install bs4
requests:pip install requests

2.怎样实现

首先我们需要登录QQ邮箱,来到这个界面:
在这里插入图片描述
也就是看到收件箱这个字眼,然后用随便用一个邮箱账号发一封邮件到这个邮箱里,当然主题必须包含‘关机’字眼,记下这个时候收到的这封邮件的发件人,其实也可以不用记下,不过这样接下来的操作中就只有一个判断条件了,这样不论谁发一封邮件来,只要主题中含有‘关机’字眼,电脑就会关机。加上这个发件人两个判断条件之后,安全性增加了。
之后就是代码环节了,总的代码就只有几十行。
不过,要读者添加两个参数,一个就是上图这个界面的网址,另外一个就是cookie。
在这里插入图片描述
cookie在network里面,
在这里插入图片描述
我们鼠标右键,点击检查,点击network,点击all,任何按F5进行刷新,点击第一个网址,找到cookie。
代码如下:

def get_info():
   url='收邮件的那个网址'
    headers={
        'cookie':'邮箱cookie',
        'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400'
    }
    html_2=requests.get(url=url,headers=headers)
    soup=BeautifulSoup(html_2.text,'lxml')
    list_1=soup.select('div#div_showtoday>table.i.F')
    info=list_1[0]
    name=info.select('td.tl.tf>nobr>span')[0].get_text()   #发件人
    zhuti=info.select('td.gt>div.tf.no>u')[0].get_text()  # 发件的主题
    return name,zhuti

通过这个函数我们就可以得到发件人和主题了。
然后之后我们就只要电脑接受到这个信息,就执行os.system这个操作就可以了。

    while True:
        tuple=get_info()
        print(tuple)
        name,zhuti=tuple[0],tuple[1]
        if '发件人' in name and '关机' in zhuti:
            os.system('shutdown -s -t 1')
        else:
            pass
        time.sleep(300)   # 每运行一次,休眠5分钟

这个一个死循环,之所以休眠五分钟(刷新),是为了避免ip地址被封,如果访问次数过的话,当然,读者也可以根据需要改变这个休眠时间。

3.最终代码

完整代码:电脑关机.py
我们可以将这个打包成一个.exe文件,然后启动电脑之后运行一下这个程序,然后发一封邮件试一试,当然也可以直接运行。

4.总结与改进

1.因为我这是运用requests来爬取数据的,所以面临这ip被封的情况,读者可以运用selenium试一试;
2.在文章表述不清的地方,希望大家谅解;
3.这个程序当天运行并成功关机,如果再一次执行这个程序,电脑就会自动关机。如果还想执行一次,那么就需要发两封邮件,第一封邮件主题不要包含‘关机’字样,然后启动这个程序,再发一封邮件,电脑又可以关机了。当然,电脑需要设置一下,如电脑的休眠时间,改为从不,否则电脑没有收到邮件,就已经处于休眠状态了。
4.如果大家有什么好的改进措施,欢迎留言。

发布了51 篇原创文章 · 获赞 299 · 访问量 9171

猜你喜欢

转载自blog.csdn.net/qq_45404396/article/details/105087401
今日推荐