需求:

情况是这样的,公司的行政同事需要统计打印机的打印页数,公司也不原因花钱买打印管理软件,只能人肉一台台的去抄打印页数。一体机品牌是东芝泰格的,型号为TOSHIBA e-STUDIO2505AC 。如果打印机数量少的话,偶尔抽个时间还是可以将就的,要是打印机的数量上来的,这个工作就惊人了。

获取打印机读数的方式主要是通过登录web管理端,然后到指定的页面去获取打印机读数。

这个工作需要定期的去执行,行政同事找到了我,希望能想想办法。

分析:

既然客户找上门了,也不好意思拒绝。好在有Python在,这个问题不难。

通常的做法是通过Python去爬取指定的页面。分析了网页的源码后发现问题来了,python爬网后发现,获取的代码都是Javascript源码,根本不能从网页元素中获得对应的数值。笔者就想到了另外一个问题,之前希望通过Python对Cisco交换机爬网,也是这样的情况,获取了一大堆的javascript 代码,看来这个办法行不通了。于是,笔者转向了Selenium, 果然没有失望。

具体实现方法如下:

  1. 调试指定的浏览器是chrome, 下载对应版本的chromedriver,并放置在与python一同的目录下面。
  2. 通过python模拟登录后,又遇到另外一个问题,frameset, 这个网站是多个frameset套用,如果指定不正确的话,程序会返回无法找到空间的错误。
  3. 代码如下:

from selenium import webdriver

from time import sleep

browser=webdriver.Chrome()

browser.get('http://135.*.*.*/?MAIN=TOPACCESS')  #登录打印机管理页面

print(browser.title)        #确认是否正常登录

browser.switch_to.frame('TopLevelFrame')

sleep(3)

print('yes')

browser.switch_to.frame('Loginframe') #切换frameset

sleep(3)

print(browser.title)

print(browser)

browser.find_element_by_name('USERNAME').send_keys('admin')

browser.find_element_by_name('PASS').send_keys('123456')

sleep(3)

browser.find_element_by_name('Login').click() #自动点击Login登录

sleep(3)

print(browser.title)        #确认是否登录成功

browser.switch_to.frame('TopLevelFrame')

sleep(3)

browser.switch_to.frame('topframe')

print("topframe")

sleep(3)

browser.find_element_by_id('COUNTER-anchor').click() #切换到指定的分类下面

print("Pass")

sleep(3)

browser.switch_to.default_content()     #注意,多frameset情况下每次切换完需要重置

browser.switch_to.frame('TopLevelFrame')

browser.switch_to.frame('contents')

pages=browser.find_element_by_id('Print_Total_CopyCounter_Full').text  #获取打印机指定值

print(pages)

browser.quit()

小结:

  1. 通过Python爬网,在无法直接通过网页元素获取值的情况下,推荐使用selenium. 代码执行过程中,可以关闭前台调试框。
  2. 多个frameset的情况下,切换一次后如果需要再次切换的话,需要重置一下浏览器。

这个方法对东芝泰格,富士施乐,思科设备都是适用的。

Python获取打印机读数(东芝泰格)相关推荐

  1. 使用Python获取Excel文件中单元格公式的计算结果

    假设有如下Excel文件,其中第二个WorkSheet中数据如下: 其中D列为公式,现在要求输出该列公式计算的数值结果,代码如下: 代码运行结果: ----------相关阅读---------- 1 ...

  2. python获取指定单元格内容_python读取excel表格指定位置的内容

    今天是第一次写博客,对之前学以致用的内容做一些总结,以备日后忘了或者可以给别人提供一些帮助.话不多说,开始写内容. python读取excel表格指定位置的内容 需求:现在有一个excel表格,里面有 ...

  3. python获取网络打印机状态_c#教程之C# 获取打印机当前状态的方法

    要获得打印机的状态,应该定义一个联合. 复制代码 代码如下: enum PrinterStatus { 其他状态= 1, 未知, 空闲, 正在打印, 预热, 停止打印, 打印中, 离线 } 其中的&q ...

  4. 怎么用python读取csv文件、并且是读取行-使用python获取csv文本的某行或某列数据的实例...

    站长用Python写了一个可以提取csv任一列的代码,欢迎使用.Github链接 csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格: 就可以存 ...

  5. python csv读取-使用python获取csv文本的某行或某列数据的实例

    站长用Python写了一个可以提取csv任一列的代码,欢迎使用.Github链接 csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格: 就可以存 ...

  6. Python处理Excel表中单元格带有换行的数据

    Python处理Excel表中单元格带有换行的数据 文章目录 Python处理Excel表中单元格带有换行的数据 问题样式 实例问题 实例实现代码 实例结果 问题样式 在数据处理过程中常常会遇到这样一 ...

  7. c 语言获取系统时间并打印机,C# 获取打印机当前状态的方法

    C# 获取打印机当前状态的方法 要获得打印机的状态,应该定义一个联合. 复制代码 代码如下: enum PrinterStatus { 其他状态= 1, 未知, 空闲, 正在打印, 预热, 停止打印, ...

  8. python 3d打印机_如何使用Python构建自己的CNC控制器和3D打印机

    python 3d打印机 by Nikolay Khabarov 通过尼古拉·哈巴罗夫(Nikolay Khabarov) 如何使用Python构建自己的CNC控制器和3D打印机 (How you c ...

  9. Python 把图片拆分成宫格图片组

    文章目录 Python 把图片拆分成宫格图片组 Python 把图片拆分成宫格图片组 import os from PIL import Image# 所需安装的模块 # pip install pi ...

  10. Python中xlrd操作excel单元格

    学习目标 Python中xlrd操作excel单元格 学习内容 1.获取工作表 sheet=data.sheet_by_index(0) 2.返回单元格对象 sheet.cell(1,2) #返回第二 ...

最新文章

  1. 基础知识——测试代码(七)
  2. 2017杭州·云栖大会第二天:阿里云发布了这些“黑科技”
  3. 常见的基于node.js的web框架
  4. python tableview绑定字典_TableView索引的添加
  5. 7-68 阶乘计算 (15 分)
  6. EFCore动态切换Schema
  7. LeetCode-best time to buy and sell stock 1 数组
  8. python request timeout_Python - aiohttp请求不断超时(Python - aiohttp requests continuously time out)...
  9. SPH(光滑粒子流体动力学)流体模拟实现:算法总览
  10. mondrian olap 示例_详解OLAP概念、基本内容、特点、分类
  11. Exception in thread main java.lang.NoClassDefFoundError解决了
  12. C++ string()什么意思
  13. C语言w10输入法打不出中文,win10系统输不了中文怎么办
  14. 笔记-SIM900A模块开发:GPRS建立TCP连接与服务器进行数据传输
  15. 美团java后端面试题目_美团笔试题(Java后端5题2小时)
  16. 云计算业务优势扩大,阿里云业务持续高速增长
  17. html采集电脑信息,网页数据采集入门词汇介绍 - 八爪鱼采集器
  18. 金属学复习【5】--- 金属及合金的塑性变形与再结晶
  19. 沟通失败是怎样造成的
  20. JavaScript—箭头函数

热门文章

  1. 计算机高特效吃鸡游戏主机配置单,畅玩主流游戏吃鸡LOL组装电脑配置清单
  2. 多台欧姆龙PLC通过智能网关实现HTTP协议对接MES系统
  3. docker源码编译安装步骤解析
  4. iPhone XS Max A2101(D3XP X1048 MLB P1 D33P) 820-01225 苹果手机点位图
  5. 计算机管理如何格式化u盘,u盘无法格式化?0字节?教你5种方法格式化u盘,超简单!...
  6. 基于微信小程序校内论坛系统设计与实现(毕业设计论文+数据库脚本+源码+答辩ppt)
  7. Flutter框架优缺点
  8. [免费专栏] Android安全之Android工程模式
  9. 像中文的罗马音字体复制_帮我把日语的罗马音弄成汉字!
  10. 详解IT服务管理(ITSM)流程五阶段