还在网页上做着重复劳动?有它就够了!
本篇阅读时间约为 7 分钟。
1
故事开篇
前些日子,自从咪哥的好朋友阿伟帮女神小雯解决了繁琐的文件分类问题后,阿伟在小雯心中的地位提升了一大截,阿伟心中窃窃欢喜。。。
最近正是“金三银四”,伴随着离职跳槽季,助理小雯的座位对面,迎来了一位新同事 - 胖哥阿贤。
说起这位新同事,可谓是一个全能型选手,上知天文下知地理,左懂金融右懂 IT,人虽然胖点...但是能说善道。没过多久,就已经与小雯打得热火朝天,中午经常坐在一起吃饭聊天。
看到此番场景,这让我的好朋友阿伟陷入了困境。。。再这样下去,心仪的女神可就要被别人抢走了呀。。奈何老天爷非常的给力,又一次赐予阿伟改变窘境的机会!
某天中午,总裁办公室的金融经理要用自己公司的办公网站制定高级方案,但是需要先将 excel 中的公司名称一条条录入到办公网站中,于是将这种重复劳动力的活儿安排给了助理小雯。
小雯收到邮件后,打开 excel 附件一看,有近 1000+ 条内容要录入!这可怎么办呀,光是点鼠标就需要点 1000+ 下!!非常苦恼愤怒。。。
看到小雯的苦恼表情,阿贤和阿伟两人赶忙凑过去,询问是怎么个情况。
胖哥阿贤了解后心想:“这么多的内容要录入,我要是帮她的话,今天晚上怕是要加班也回不去家了,还是算了吧。。。虽然懂些计算机知识,但好像没有什么相关知识能帮她解决这次难题。” 于是对小雯说:“小雯同志呀,我的工作还有好多没完成呢。。。这次怕是帮不了你了!
小雯回答道:“ε=(´ο`*)))唉,没事,今天怕是要决战到天亮了。”
阿伟看到,心想:“这么重复的劳动力,一定有什么好的方法可以帮助小雯解决,我赶紧去求助一下咪哥,看看他有没有什么好的办法!” 回头对小雯说:“小雯先别急呀,我一会儿给你想个好点的方法,保证不让你加班到明天!”
胖哥听到后,不屑地笑了下,小声的碎碎念了一句:“怎么可能有好的解决方法。。。人工方式分担还差不多!”
当然,阿伟听到了,但是没有立马反驳,急忙微信联系了咪哥。。
以下第一人称我,即笔者(咪哥)的视角。
在阿伟找到我后,大概描述了详情,其中的细节是,网页大概类似百度的查找页面一样。需要将录入的内容输入到框框中,然后点击录入按钮,就和咱们平时使用百度搜索类似的操作。
之前工作中遇到过此相同情形的我,立马想到了一个技术!python + selenium 实现网页的自动化。
由于我无法连接到阿伟他们公司的内网环境,所以这次只能给阿伟简单的介绍下如何使用,至于详细的实现过程,还需要阿伟自行实现。
2
环境准备
开始之前,先简单的介绍下 selenium 是个什么东东。
Selenium是一个开源的和便携式的自动化软件测试工具,用于测试web应用程序有能力在各种浏览器和操作系统下运行。 Selenium是一套工具,可以有效的的基于web的应用程序的自动化。
简单的来说, selenium 就是个自动化网页的工具,使用它,我们可以用程序来实现对网页的点击,选择等控制操作。
1. 下载 selenium 的官方驱动,下面都已谷歌浏览器为例。
打开浏览器,确认自己的谷歌浏览器版本号:
确认版本号后,打开 selenium 对应谷歌浏览器的主页,笔者这里是 74,你们自行查找即可:
http://chromedriver.chromium.org/downloads
2. 安装 python 的第三方库,以下命令
pip install selenium
3
代码讲解
以上环境都准备好了后,我给阿伟用百度的查询页做了演示。
Python 调用 selenium 对谷歌浏览器进行百度搜索访问操作:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/s?wd=1')
可以看到,当我运行代码时,自己打开了浏览器,接下来,我要让搜索框改变内容,并且自动查找。
还记得曾经爬虫时讲过的 F12 吗?在使用 selenium 中,也许要用到它去定位网页元素的位置。
将搜索框的 xpath 复制下来,百度一下的按钮同理,接下来使用下面的代码:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/s?wd=1')
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('咪哥杂谈') # 将咪哥杂谈给到百度搜索框
driver.find_element_by_xpath('//*[@id="su"]').click() # 点击
有了以上概念后,接下来变得简单了,只需要自动读取excel中的内容,然后每次读取,都将内容输入到百度的框框中,在点击查询操作。
import pandas as pd
def __read_excel(self, path):
""" 读取 excel 的公司名称 """
df = pd.read_excel(path)
self.company_name = df['公司名称']
读取 excel 文件的公司名称,使用的 pandas ,读取后的 company_name 是个可以循环遍历的对象(DataFrame)。
最终的展示效果如下:
4
常用的操作方法
当然,操作的方法远远不止这么简单,具体更多的应用方法,大家可以详见官方文档:
https://selenium-python.readthedocs.io
这里就不给大家一一演示了。
5
故事结尾
阿伟在学习了原理后,恍然大悟,果然是可以实现的,于是开心的按照上述方法,将重复录入系统的操作完整写了一遍,而最终完美的将其打成了 exe 文件,发给了小雯。
小雯在阿伟的指导下,将 excel 路径输入后,程序开始自动执行了,效率超级快!简单粗暴又好用。。。于是不到半个小时的时间,小雯便美滋滋的完成了当天的任务!
开心之下,小雯决定携手与阿伟共进烛光晚餐。。。阿伟从此在女神心中的地位又再次回来了!~
就这样,胖哥阿贤默默吃土中。。。
有想看源码的同学...可以后台回复 自动化网页,即可获得源码地址。但是 excel 的内容需要自己去制造哟!
至此完!
长按关注
公众号名称:咪哥杂谈
一个咪咪怪的公众号
长按二维码关注哦!