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 社区里找一下。这时你就会从一个小口,精通各种定位方法。当然,也可以选择两三个常用的方法,容错性更大一点。

往期精彩: