Python 自动获取大批量excel数据并填写到网页表单(pandas;selenium)

需求:

自动获取大批量excel数据并填写到网页表单

代码实现:

import pandas as pd
import time

from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select

df = pd.read_excel("NEW_COPY.xlsx", converters={'增添条码':str})   
#条码有前导零 也需要录入 这里稍作处理

print(df.head())

driver = Chrome()
url = "你的网址"
driver.get(url)
# driver.maximize_window()  #最大化窗口

# 填写用户名密码 
 driver.find_element(By.XPATH, '//*[@id="random_form"]').send_keys("username")
 time.sleep(0.2)
 driver.find_element(By.XPATH, '//*[@id="password"]').send_keys("password")
 time.sleep(0.2)
 driver.find_element(By.XPATH, '/html/body/div/div[2]/div[4]').click()

time.sleep(30)

for idx, row in df.iterrows():
    # 已提交数据   ISBN	书名	定价 类别  增添条码

    ISBN = row["ISBN"]
    driver.find_element(By.XPATH, '//*[@id="info"]').send_keys(ISBN)
    time.sleep(0.2)
    正题名 = row["书名"]
    driver.find_element(By.XPATH,
                        '//*[@id="app"]/div/div[2]/div/div[2]/div/div[2]/div[2]/div/form[1]/table/tbody/tr[1]/td[4]/div/span/label/input').send_keys(
        正题名)
    time.sleep(0.2)
    定价 = row["定价"]
    driver.find_element(By.XPATH,
                        '//*[@id="app"]/div/div[2]/div/div[2]/div/div[2]/div[2]/div/form[1]/table/tbody/tr[2]/td[6]/div/span/label/input').send_keys(
        定价)
    time.sleep(0.2)

    # 选择类别
    click_e_t = driver.find_element(By.XPATH, '//input[@name="collectionType"]')
    collection_click_e = click_e_t.find_element(By.XPATH, '../label/input')
    collection_click_e.click()
    # import ipdb; ipdb.set_trace()   ipdb调试工具
    time.sleep(1.5)   #避免太快 选择不到
    all_can_select = driver.find_elements(By.XPATH, '//div[@class="c7n-spin-container"]/ul')[0].find_elements(By.XPATH, './/li')
    all_can_select[7].click()

    time.sleep(1)
    
    增添条码 = row["增添条码"]
    driver.find_element(By.XPATH,
                        '//*[@id="app"]/div/div[2]/div/div[2]/div/div[2]/div[2]/div/form[2]/table/tbody/tr[3]/td[2]/div/div[1]/label/textarea').send_keys(
        增添条码)
    time.sleep(0.2)

    # 点击提交
    driver.find_element(By.XPATH,
                        '//*[@id="app"]/div/div[2]/div/div[2]/div/div[2]/div[2]/div/form[3]/table/tbody/tr/td/div/div/button[1]').click()

    WebDriverWait(driver, 5).until(lambda d: "操作成功" in d.page_source)  
	# 当出现提示操作成功才进行下一次循环
	
print ("已完成!")	
driver.close()

Python 自动获取大批量excel数据并填写到网页表单(pandas;selenium)_第1张图片

注意:

部分网页获取下拉列表点击的方式有所差异 这个请根据网页源码自做选择

一定要学会使用IPDB调试工具 太好用了!!!!

可能需要pip update一下 看提示 很好解决 没有报错最好啦

Python真是太好用了 办公利器啊!!!!

你可能感兴趣的:(PYTHON,python,pandas,selenium)