尽管这个线程上的通用建议非常好,但它非常广泛。我自己解决了这个问题,尽管我发布了一个功能齐全的示例,但它被版主删除了,尽管“理论上回答了问题”。
因此,对于希望解决此问题的其他人,您需要执行以下操作:
使用 Selenium 和 openpyxl,这是两个相对简单的模块,可以完美地完成这项任务。
您将使用 selenium 打开您的网页,并检索您希望填充的相关 html 元素。如果您不精通 HTML,我建议您通过 xPath 查找元素。 Xpath finder google chrome 插件将使这变得非常容易。
driver.get() 和 driver.find_element_by_xpath() 将是您需要的函数。
我们将使用 openpyxl 来处理我们的 excel 表格。 'load_workbook()' 将加载工作簿。然后,我们将使用“sheet = workbook.active”函数从工作簿中访问工作表。
我们现在可以打开我们的网站并选择一个 Excel 表格。
现在我们需要将单元格值分配给变量,以便我们可以填充 HTML 表单。我们为工作簿中的每个 COLUMN 分配一个变量。因此,如果 A 列包含 first_names,我们可以通过编写 'FNAME = sheet['A'] 将其分配给一个变量。现在我们有了一种在列中引用单元格的方法,我们可以开始将数据输入到我们的 HTML 表单中。
我们使用 Selenium 中的 .send_keys() 函数填充表单。
first_name.send_keys(FNAME.value)
.value 确保显示正确的值,因为有时 selenium 会打印单元格函数而不是值,我们不希望这种情况发生。
现在我们可以从我们的 excel 表格中将值打印到我们的 HTML 表单中,我们需要遍历每一行。我们通过一个简单的 while 循环来做到这一点:
i = 1
x = 1
while x <= 50:
first_name.send_keys(FNAME[i].value)
i+=1
x+=1
driver.quit
一旦循环发生 50 次,驱动程序将退出,关闭浏览器并停止脚本。
在尝试自动执行此操作时,您可能会发现其他一些有用的东西:
driver.back()
time.sleep()
如果您想看一个实际的工作示例,请随时 PM 我,因为显然在这里发布它并没有帮助讨论。