繁体   English   中英

编写自动填充和提交 Web 表单程序

[英]Write a auto-fill and submit web form program

我正在尝试编写一个程序,该程序可以在特定时间段内自动填写和提交网络中的表单。

但我不知道如何以及从哪里开始。 我在谷歌中搜索了这个,但只得到了非常通用的答案,比如使用 JavaScript、python。 谁能告诉我应该先学哪些语言?

尽管该线程上的通用建议非常好,但它的范围很广。 我自己解决了这个问题,尽管我发布了一个功能齐全的示例,但尽管“理论上回答了问题”,它还是被版主删除了。

因此,对于希望解决此问题的其他人,您需要执行以下操作:使用 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 我,因为显然将其张贴在这里无助于讨论。

您找到的答案虽然一般,但都是正确的。 我会尽力向你解释。

当您尝试自动化某些活动时,您必须使用脚本语言来基本上

  1. 获取内容引用(例如获取索引、表单/字段 ID 等)
  2. 插入/更改内容(如填写字段,遵循字段引用)
  3. 保存内容(准备一个文件,包含字段引用及其内容,可以注入到特定系统或网站)

脚本语言的一个例子是Python

所以你已经有了你的脚本。 现在你需要在页面上注入它。 可以为您完成的编程语言是Javascript 或 JS 它允许您与网页交谈,获取数据/引用或发布数据。

我建议您使用名为Selenium Webdriver的库编写Python脚本。

实现您的想法会很容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM