经常有些网页要登录,然后频繁填写一些重复的内容,本文暂只考虑不需要验证码的情况,可以通过selenium模拟用户行为在页面操作,用excel拖出相似内容,用xlrd读取并填写到网页中。
-
导入相关包
from selenium import webdriverimport osimport xlrdimport xlwtimport jsonimport requests, json,timefrom selenium.webdriver.support.wait import WebDriverWait
+ 调用webdriver,进入登录页面pythonChromeDriverServer = '''C:\Users\Chrome\chromedriver.exe'''url='www.baidu.com/'myurl='' #跳转后的页面os.environ["webdriver.chrome.driver"] = ChromeDriverServerbrguge = 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)+ 读取excelxlsfile表示绝对路径,如xlsfile = r'E:\4_文档\总结\30周.xlsx'pythondef 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()# 确认```+