python抓取网络信息_python实战练手项目---获取可用wifi信息(windows版)

python实战练手项目---获取可用wifi信息(windows版)

点击电脑的网络设置,总能看到附近可用的wifi,那么能否用python写程序获取这些可用wifi网络信息呢?

某些人看到这里已经开始质疑做这件事情的意义了,觉得这样的技术在工作中永远不会使用,不值得学习。对于这样的观点,我不认同。对于技术,我们应始终保持好奇心,始终保持很强的探索欲望,除了通过点击查看网络设置,你不想知道还有别的方式来获取可用wifi网络么?

在windows系统上,打开cmd命令窗口,执行命令

netsh wlan show network

这个命令就可以查看计算机可以连接的wifi网络

get_wifi_windows-1583239758-0.png

有了查看wifi的命令,就可以使用python的subprocess模块来执行这个命令

示例代码

import subprocess

result = subprocess.check_output(['netsh', 'wlan', 'show', 'network'])

result = result.decode('gbk')

lst = result.split('\r\n')

lst = lst[4:]

for index in range(len(lst)):

if index % 5 == 0:

print(lst[index])

check_output 方法会在子进程中执行netsh wlan show network 命令,其结果将以字符串的形式返回,类型为bytes,使用decode方法将数据转成str,这里要注意编码,我电脑里执行代码时用的是gbk,如果你实验时在这里报错,可以改成ascii或者utf-8试试。

为什么要用\r\n做分割呢,因为返回的字符串,每一个段落末尾都是\r\n,这样才能保证一个字符串在屏幕上显示时可以分行,不然就只能显示在一行上了。

至于for循环里对5取模,是因为lst列表里,索引是5的倍数的元素恰好就是wifi的名称,这是前面使用split分割导致的,具体的,你可以输出lst的内容查看,便能够明白了。

虽然只是一个小小的功能,但你通过这个不起眼的功能学会了使用subprocess.check_output,那么今后,需要在python当中使用命令来获取信息或进行操作时,你都可以使用这个方法,除了check_output,subprocess还有很多其他利害的方法等待你去探索

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值