我正在开展一个小项目,我必须向网站提交表格。
但是,该网站使用onclick
事件提交表单(使用javascript)。
如何在python中模拟onclick
事件?
可以使用哪些模块?我听说过selenium
和mechanize
模块。但是,哪个模块可以使用,或者两者兼而有之,哪一个更好?
我是网络抓取和自动化的新手。所以,这将非常有帮助。
提前致谢。
答案 0 :(得分:4)
在网页上模拟onclick
事件时没有灵丹妙药。它几乎是用例,但这里有一些要点和指导。
一般来说,有两种方法:
requests
。selenium
会启动一个真正的浏览器,您可以在其中找到特定元素,然后点击.click()
method mechanize
不会执行/触发onclick
函数,因为执行onclick
需要执行mechanize
cannot do的javascript。
答案 1 :(得分:3)
理想情况下,您甚至不需要在这种情况下点击按钮。
您只需要在点击提交按钮时查看表单发送请求的Web服务。
为此,请在浏览器中打开开发人员的控件,转到“网络”选项卡,然后选择“保留日志”。现在手动提交表单并查找发送的第一个xhr GET / POST请求。这将是POST请求的90%。
现在,当您在请求参数中选择该请求时,它将显示您在提交表单时输入的值。宾果!!
现在您需要做的就是使用请求在python代码中使用相关的请求标头和参数来模仿此请求。还有Wooshh !!
希望有所帮助......