python实现简单的办公⾃动化
前提:我知道各位有很多的繁琐的苦差事,填个excel可能要烦的要死。最近,也有⼈叫我帮他做⼀个脚本,让我帮他从⼀个excel上获取数据,再到他给的⽹站上去搜索,将结果填回。其实挺简单的。
今天我就把我的⼀些经验分享⼀下。也算是对我的⼀种提⾼(就拿b站做个例⼦)
⽬标:从excel提取关键词到b站进⾏搜索,再将结果返回excel
1.⾸先,我们要有配置python环境,这个我就不细说了。百度上有很详细的教程。直接跳到第⼆步。
2.配置必要的模块
import openpyxl
import selenium
主要是这两个模块,其中openyxl是关于excel的,这是我试了好多关于excel模块中,算是⽐较好的模块了。因为他⽀持读和写。其他的模块只⽀持读或写。要读取excel要调两个模块。⽽⽤openyxl只⽤调⽤⼀个。但是他也有他的缺点,就是openyxl只⽀持xlsx格式。其他的不⽀持。要读取其他的格式,如xls,xlsm,xlsb。要⾃⼰⼿动转⼀下格式。
⾄于selenium就是⼀个⽐较有名的关于浏览器的模块了。它主要优点就是可以爬取⼀些动态渲染的页⾯。requests模块是爬不了动态渲染的页⾯的。⾄于缺点也很明显。那就是速度⽐较慢。
3.配置驱动
还有⼀点就是,selenium要配合浏览器的驱动来运⾏,我这⾥⽤的edge的驱动。其余其他的浏览器也有,⽐如⾕歌,⽕狐等等。可以百度来下载。这⾥就给出edge下载链接Microsoft Edge Driver - Microsoft Edge Developer(ps:版本⼀定要和⾃⼰浏览器版本匹配)
4.开始码代码了
from openpyxl import load_workbook #从openyxl导⼊load_workbook
from selenium import webdriver #从selenium 导⼊weddriver
driver = webdriver.Edge('') # 初始化浏览器,其中驱动的地址根据⾃⼰的地址来
<('www.bilibili/') #控制浏览器打开b站
以上代码运⾏后,会⾃⼰招出⼀个edge浏览器并进⼊b站
2.进⼊b站我们就成功了第⼀步了,接下来要到搜索框,输⼊excel的数据
输⼊以下代码
from openpyxl import load_workbook #从openyxl导⼊load_workbook
from selenium import webdriver #从selenium 导⼊weddriver
driver = webdriver.Edge('') # 初始化浏览器
<('www.bilibili/') #控制浏览器打开b站
driver.find_element_by_xpath('//*[@id="nav_searchform"]/input').send_keys('ok')
它就会打开浏览器并在b站搜索框输⼊ok,现在我们只要把ok换成excel的数据就⾏了,加的这⾏代码是什么意思呢,就是⽤xpath⽅法寻元素,xpath⽅法怎么元素了,你可以按F12进⼊开发者模式,检查你要的位置,然后将它的xpath复制下来就⾏?
当然selenium提供的⽅法肯定不⽌这⼀种,还可以⽤id,tag等等。这⾥安利⼀个⽐较好的插件chropath,当你不到元素时,他可以帮你将元素轻松定位。⾮常⽅便
3.接下来就是输出excel的数据了
⾸先,我们创建⼀个叫⽜study的excel,并在⾥⾯写⼊数据
我在⾥⾯写了⼀个⿊剑客与剑
接下来就是写代码,将输⼊送⼊搜索框,并进⾏搜索
这⾏代码可以让浏览器以迅雷不及掩⽿之势打开b站输⼊⿊剑客与剑并进⾏搜索。
4.接下来,就将搜索的前5个视频的标题写⼊excel
输⼊以下代码
from openpyxl import load_workbook #从openyxl 导⼊load_workbook
from selenium import webdriver #从selenium 导⼊weddriver
wb = load_workbook('⽜stduy.xlsx')
ws = wb.active
driver = webdriver.Edge('') # 初始化浏览器
<('www.bilibili/') #控制浏览器打开b 站
driver.find_element_by_xpath('//*[@id="nav_searchform"]/input').send_keys(ws['A1'].value)
driver.find_element_by_xpath('//*[@id="nav_searchform"]/div/button').click()
from openpyxl import load_workbook #从openyxl导⼊load_workbook
from selenium import webdriver #从selenium 导⼊weddriver
python怎么读取excel的数据wb = load_workbook('⽜stduy.xlsx')
ws = wb.active
driver = webdriver.Edge('') # 初始化浏览器
<('www.bilibili/') #控制浏览器打开b站
driver.find_element_by_xpath('//*[@id="nav_searchform"]/input').send_keys(ws['A1'].value)
driver.find_element_by_xpath('//*[@id="nav_searchform"]/div/button').click()
windows = driver.window_handles
# 切换到当前最新打开的窗⼝
driver.switch_to.window(windows[-1])
name = (driver.find_elements_by_class_name('title')) #寻标题
n = 1
for i in name:
)
ws['B'+str(n)].value = i.text
wb.save('⽜stduy.xlsx') # 写⼊excel
n += 1
driver.close()
driver.switch_to.window(windows[0])
driver.close() #关闭浏览器
前提:我知道各位有很多的繁琐的苦差事,填个excel可能要烦的要死。最近,也有⼈叫我帮他做⼀个脚本,让我帮他从⼀个excel上获取数据,再到他给的⽹站上去搜索,将结果填回。其实挺简单的。
今天我就把我的⼀些经验分享⼀下。也算是对我的⼀种提⾼(就拿b站做个例⼦)
⽬标:从excel提取关键词到b站进⾏搜索,再将结果返回excel
1.⾸先,我们要有配置python环境,这个我就不细说了。百度上有很详细的教程。直接跳到第⼆步。
2.配置必要的模块
import openpyxl
import selenium
主要是这两个模块,其中openyxl是关于excel的,这是我试了好多关于excel模块中,算是⽐较好的模块了。因为他⽀持读和写。其他的模块只⽀持读或写。要读取excel要调两个模块。⽽⽤openyxl只⽤调⽤⼀个。但是他也有他的缺点,就是openyxl只⽀持xlsx格式。其他的不⽀持。要读取其他的格式,如xls,xlsm,xlsb。要⾃⼰⼿动转⼀下格式。
⾄于selenium就是⼀个⽐较有名的关于浏览器的模块了。它主要优点就是可以爬取⼀些动态渲染的页⾯。requests模块是爬不了动态渲染的页⾯的。⾄于缺点也很明显。那就是速度⽐较慢。
3.配置驱动
还有⼀点就是,selenium要配合浏览器的驱动来运⾏,我这⾥⽤的edge的驱动。其余其他的浏览器也有,⽐如⾕歌,⽕狐等等。可以百度来下载。这⾥就给出edge下载链接Microsoft Edge Driver - Microsoft Edge Developer(ps:版本⼀定要和⾃⼰浏览器版本匹配)
4.开始码代码了
from openpyxl import load_workbook #从openyxl导⼊load_workbook
from selenium import webdriver #从selenium 导⼊weddriver
driver = webdriver.Edge('') # 初始化浏览器,其中驱动的地址根据⾃⼰的地址来
<('www.bilibili/') #控制浏览器打开b站
以上代码运⾏后,会⾃⼰招出⼀个edge浏览器并进⼊b站
2.进⼊b站我们就成功了第⼀步了,接下来要到搜索框,输⼊excel的数据
输⼊以下代码
它就会打开浏览器并在b站搜索框输⼊ok,现在我们只要把ok换成excel的数据就⾏了,加的这⾏代码是什么意思呢,就是⽤xpath⽅法寻
元素,xpath⽅法怎么元素了,你可以按F12进⼊开发者模式,检查你要的位置,然后将它的xpath复制下来就⾏?
当然selenium提供的⽅法肯定不⽌这⼀种,还可以⽤id,tag等等。这⾥安利⼀个⽐较好的插件chropath,当你不到元素时,他可以帮你将元素轻松定位。⾮常⽅便
3.接下来就是输出excel的数据了
⾸先,我们创建⼀个叫⽜study的excel,并在⾥⾯写⼊数据
我在⾥⾯写了⼀个⿊剑客与剑from openpyxl import load_workbook #从openyxl 导⼊load_workbook
from selenium import webdriver #从selenium 导⼊weddriver
driver = webdriver.Edge('') # 初始化浏览器
<('www.bilibili/') #控制浏览器打开b 站
driver.find_element_by_xpath('//*[@id="nav_searchform"]/input').send_keys('ok')
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论