我正在尝试编写一个程序,可以在特定的时间段内自动填写并提交表单。
但我不知道如何以及从何处开始。我在谷歌搜索这个,但只产生非常一般的答案,如使用JavaScript,python。谁能告诉我应该先学习哪种语言?
答案 0 :(得分:2)
尽管关于该线程的通用建议相当不错,但它的范围很广。我已经解决了这个问题,尽管我发布了一个功能齐全的示例,但尽管“从理论上回答了问题”,但还是被主持人删除了。
因此,对于希望解决此问题的其他人,您将需要执行以下操作: 使用Selenium和openpyxl,这是两个相对简单的模块,可以完美地执行此任务。
您将使用selenium打开网页,并检索要填充的相关html元素。如果您不熟悉HTML,建议您通过xPath查找元素。 Xpath finder google chrome插件将使此操作非常容易。
driver.get()和driver.find_element_by_xpath()将成为您需要的功能。
我们将使用openpyxl处理我们的Excel工作表。 'load_workbook()'将加载工作簿。然后,我们将使用“工作表= workbook.active”功能从工作簿中访问工作表。
我们现在可以打开我们的网站并选择一个Excel工作表。
现在,我们需要将单元格值分配给变量,以便随后可以填充HTML表单。我们为工作簿中的每个COLUMN分配一个变量。因此,如果列A包含first_name,我们可以通过写'FNAME = sheet ['A']将其分配给变量。现在,我们有了引用列中单元格的方法,就可以开始将数据输入HTML表单了。
我们使用Selenium中的.send_keys()函数填充表单。
first_name.send_keys(FNAME.value)
.value确保显示正确的值,因为有时硒会打印单元格功能而不是值,我们不希望这种情况发生。
现在,我们可以从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()
如果您希望看到一个实际的工作示例让我感到随意,那么显然在此处张贴该示例不会对讨论有所帮助。
答案 1 :(得分:0)
您找到的答案一如既往,是正确的。我会试着向你解释一下。
当您尝试自动化某些活动时,您必须使用script language来基本
脚本语言的一个示例是Python。
所以你已经有了自己的脚本。现在你需要在页面上注入它。可以为您完成的编程语言是Javascript, or JS。它允许您与网页交谈,获取数据/参考或POST数据。
答案 2 :(得分:0)
我建议您使用名为Python的库编写Selenium Webdriver脚本。
实现您的想法很容易。