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('msedgedriver.exe') # 初始化浏览器,其中驱动的地址根据自己的地址来
driver.get('https://www.bilibili.com/') #控制浏览器打开b站

以上代码运行后,会自己招出一个edge浏览器并进入b站


2.进入b站我们就成功了第一步了,接下来要找到搜索框,输入excel的数据

输入以下代码

from openpyxl import load_workbook #从openyxl导入load_workbook
from selenium import webdriver #从selenium 导入weddriver
driver = webdriver.Edge('msedgedriver.exe') # 初始化浏览器
driver.get('https://www.bilibili.com/') #控制浏览器打开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,并在里面写入数据

图片

我在里面写了一个黑剑客与剑

图片

接下来就是写代码,将输入送入搜索框,并进行搜索

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('msedgedriver.exe') # 初始化浏览器
driver.get('https://www.bilibili.com/') #控制浏览器打开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()

这行代码可以让浏览器以迅雷不及掩耳之势打开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('msedgedriver.exe') # 初始化浏览器
driver.get('https://www.bilibili.com/') #控制浏览器打开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:
   print(i.text)
   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('msedgedriver.exe') # 初始化浏览器,其中驱动的地址根据自己的地址来
driver.get('https://www.bilibili.com/') #控制浏览器打开b站

以上代码运行后,会自己招出一个edge浏览器并进入b站


2.进入b站我们就成功了第一步了,接下来要找到搜索框,输入excel的数据

输入以下代码

from openpyxl import load_workbook #从openyxl导入load_workbook
from selenium import webdriver #从selenium 导入weddriver
driver = webdriver.Edge('msedgedriver.exe') # 初始化浏览器
driver.get('https://www.bilibili.com/') #控制浏览器打开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,并在里面写入数据

图片

我在里面写了一个黑剑客与剑

图片

接下来就是写代码,将输入送入搜索框,并进行搜索

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('msedgedriver.exe') # 初始化浏览器
driver.get('https://www.bilibili.com/') #控制浏览器打开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()

这行代码可以让浏览器以迅雷不及掩耳之势打开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('msedgedriver.exe') # 初始化浏览器
driver.get('https://www.bilibili.com/') #控制浏览器打开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:
   print(i.text)
   ws['B'+str(n)].value = i.text
   wb.save('牛stduy.xlsx') # 写入excel
   n += 1
driver.close()
driver.switch_to.window(windows[0])
driver.close() #关闭浏览器

浏览器就会打开b站搜索并将搜到的第一页的视频标题都写入excel

图片

图片

ok,今天经验就分享到这里。

浏览器就会打开b站搜索并将搜到的第一页的视频标题都写入excel

图片

图片

ok,今天经验就分享到这里。

猜你喜欢

转载自blog.csdn.net/qq_59848320/article/details/119812926