Python+Selenium——自动办公美梦的破碎与重建
在《半小时手工解决的活,让我意外学会了 python 的 pdfkit 库》这篇文章最后,
我说“知耻而后勇,我要学 selenium。”
1 自动化美梦破碎
在各类“9.9 元掌握 Python”、“0 元免费学”的广告里,经常有类似的描述和配图:
同样的公司,同样的岗位,相似的工作,但是小明发现当自己在夜色中加班时,自己的同事小红却经常早早下班。而且呢,小红的工作完成的准确率还很高。有一天,小明终于忍不住,去向小红讨教经验。这时,小红缓缓的说:“人生苦短,我用 python”。然后附上了 Python 的入门目录和课程付费入口。
广告的思路没错,要想办法提高工作效率,减少重复性的劳动,把时间投入到有价值的地方上去。学习编程抛开学校里系统的理论与部分编程语言基础教学,还要结合业务、结合实践。这样学习才是最有效的,也是最不容易遗忘的。不过在尝试了 Selenium 以后,发现还是不能很好的解决批量打印 PDF 调整格式的问题。
2 运用工具的前提——熟悉业务逻辑
要带着明确的问题去做。如,我是要模拟什么操作,这项操作中,哪些部分是可以通过程序标准化执行的。先用 Jupyter 一行一行,边写边执行,然后测试单独的语句是否能正常运行。
然后再把它用函数或者类封装执行。
那么一般的办公系统里面,selenium 常用的操作有元素的定位、模拟鼠标点击、键盘快捷键的操作,这些都简单。难的是把要模拟的操作合理分块,不要乱了函数去调用。
3 重建——代码分享
(1) 导包
(2)登录函数,涉及到输入文本(sendkeys):
(3) 窗体切换函数:
(4)选择功能:
(5)进阶:
Xpath 的定位,一开始用默认的很长一串,然后通过尝试把长的缩短。
基本的用法是 :
// 表示从整个网页下选择所有的框。
/div[@class="XXX"] 表示选择 class 为“XXX”的 div 标签。
在 scrapy 用 response 取 Xpath 时,经常犯错:
节点要一级一级定位到最下面的一级,才可以提取文本。
(6)精进:
在这里我通常喜欢,按 tab 键,然后就可以看到很多种定位的方法。然后 help() 一下或者在 CSDN 社区里找一下。然后你就会从一个小口,精通各种定位方法。当然,也可以选择两三个常用的方法,容错性更大一点。
工具要用起来,才更有价值。
希望这篇文章对你有所启发。
元旦快乐!
版权声明: 本文为 InfoQ 作者【小匚】的原创文章。
原文链接:【http://xie.infoq.cn/article/12fe8452fe8210ad6df3ee9f4】。文章转载请联系作者。
评论