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()

在这里插入图片描述

注意:

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

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

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

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

  • 5
    点赞
  • 84
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ggreekn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值