经常有些网页要登录,然后频繁填写一些重复的内容,本文暂只考虑不需要验证码的情况,可以通过selenium模拟用户行为在页面操作,用excel拖出相似内容,用xlrd读取并填写到网页中。
- 导入相关包
from selenium import webdriver
import os
import xlrd
import xlwt
import json
import requests, json,time
from selenium.webdriver.support.wait import WebDriverWait```
+ 调用webdriver,进入登录页面
```python
ChromeDriverServer = '''C:\\Users\\Chrome\\chromedriver.exe'''
url='https://www.baidu.com/'
myurl='' #跳转后的页面
os.environ["webdriver.chrome.driver"] = ChromeDriverServer
brguge = webdriver.Chrome(executable_path=ChromeDriverServer)
brguge.get(url) # 发送get请求
brguge.find_element_by_id('username').send_keys('xxx') # 输入用户名
brguge.find_element_by_id('password').send_keys('xxx') # 输入密码
time.sleep(0.5)
brguge.find_element_by_class_name('loginBtn').click() # 确认
print(brguge.current_url) # 输出搜索的路径
brguge.get(myurl)```
+ 读取excel
xlsfile表示绝对路径,如xlsfile = r'E:\4_文档\总结\30周.xlsx'
```python
def read(xlsfile):
book = xlrd.open_workbook(xlsfile)#得到Excel文件的book对象,实例化对象
sheet0 = book.sheet_by_index(0) # 通过sheet索引获得sheet对象
sheet_name = book.sheet_names()[0]# 获得指定索引的sheet表名字
sheet1 = book.sheet_by_name(sheet_name)# 通过sheet名字来获取,当然如果知道sheet名字就可以直接指定
nrows = sheet0.nrows # 获取行总数
ncols = sheet0.ncols #获取列总数
for i in range(nrows):
list.append([])
for j in range(ncols):
# print(sheet0.cell_value(i, j))
list[i].append(str(sheet0.cell_value(i,j)))
print(list)
return list```
+ 从list将内容写入网页
```bash
gz=brguge.find_elements_by_name('gz')
for i in range(0, rows):
gz[i].clear()
gz[i].send_keys(list[i+2][0]) # 输入
brguge.find_element_by_id('s1_ok').click()# 确认```
+
标签:brguge,sheet,python,list,selenium,自动,import,find
From: https://www.cnblogs.com/bigleft/p/18179446