本篇内容,让你完全掌握Python是如何自动化办公的~
使用Python 读取Excel 中的数据,自动批量填入问卷星系统中
1.1 Python 3.7.0
1.2 Pycharm (Python 开发工具)
1.3 Selenium (处理网页表单工具类)
1.4 openpyxl (处理Excel工具类)
selenium 安装:pip install selenium -i https://pypi.douban.com/simple/
openpyxlpy安装:pip install openpyxl -i https://pypi.douban.com/simple/
python3.7.0、pycharm 软件均在我们的百度网盘里:https://pan.baidu.com/s/1Pe0cZzLU1v46EHZZ7EGCnQ
资源失效了请加Python学习交流群进行获取:367203382
我们即将要从Excel中处理的数据长这样:
我们想创建一个.py 文件来实现我们的目标
2.1 先引入我们需要的工具类
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from openpyxl import load_workbook
import time
2.2 初始化谷歌Driver
# 1、初始化浏览器驱动器
def init_driver():
path = 'E:\\Python_Office_Auto\\Day15\\chromedriver.exe' # 这个要准备chromedriver.exe 放到我们.py 文件同目录。不知道如何获取,加群:367203382,问群主~~~
chrome_options = Options()
# 1、 添加user-agent
chrome_options.add_argument(
'user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1"')
# 2、把配置属性传递给驱动程序、并制定驱动程序的路径
driver = webdriver.Chrome(executable_path=path, options=chrome_options)
# 3、隐式等待(给每个网页的元素5秒钟的时间,5秒过后不出现、定位网页元素不存在、并进入异常处理)
driver.implicitly_wait(5)
return driver
2.3 读取Excel
def read_excel():
wb = load_workbook("用户表.xlsx")
ws = wb.active
list_users = []
for row in ws.iter_rows(min_row=2, max_row=4, min_col=1, max_col=4, values_only=True):
list_users.append(row)
return list_users
2.4 填写表单
根据提取的EXCEL信息,自动填入到问卷星系统
def input_form(user):
driver.get('https://www.wjx.top/jq/81172286.aspx')
driver.find_element_by_name('q1').send_keys(user[0])
if user[1] =='男':
# 点击男性
driver.find_elements_by_class_name('jqRadio')[0].click()
else:
# 点击女性
driver.find_elements_by_class_name('jqRadio')[1].click()
# 手机号
driver.find_element_by_name('q3').send_keys(user[2])
# 建议
driver.find_element_by_name('q4').send_keys(user[3])
# 提交
driver.find_element_by_id('submit_button').click()
time.sleep(3)
2.5 main 函数运行整个代码
if __name__ == '__main__':
# 初始化谷歌浏览器驱动器
driver = init_driver()
# 读取Excel 文件,把每行数据放到列表里。
list_users = read_excel()
# 遍历列表,取出用户信息
for user in list_users:
# 执行填写表单操作
input_form(user)
# 最后退出浏览器
driver.quit()