如何在python中模拟onclick事件?

时间:2016-07-11 02:47:10

标签: javascript python selenium web-scraping

我正在开展一个小项目,我必须向网站提交表格。 但是,该网站使用onclick事件提交表单(使用javascript)。

  1. 如何在python中模拟onclick事件?

  2. 可以使用哪些模块?我听说过seleniummechanize模块。但是,哪个模块可以使用,或者两者兼而有之,哪一个更好?

  3. 我是网络抓取和自动化的新手。所以,这将非常有帮助。

    提前致谢。

2 个答案:

答案 0 :(得分:4)

在网页上模拟onclick事件时没有灵丹妙药。它几乎是用例,但这里有一些要点和指导。

一般来说,有两种方法:

  • 使用浏览器开发人员工具,打开网络选项卡,点击并查看正在向服务器发送的请求。然后,在Python中模拟此请求,例如requests
  • 使用selenium会启动一个真正的浏览器,您可以在其中找到特定元素,然后点击.click() method

mechanize不会执行/触发onclick函数,因为执行onclick需要执行mechanize cannot do的javascript。

答案 1 :(得分:3)

理想情况下,您甚至不需要在这种情况下点击按钮。

您只需要在点击提交按钮时查看表单发送请求的Web服务。

为此,请在浏览器中打开开发人员的控件,转到“网络”选项卡,然后选择“保留日志”。现在手动提交表单并查找发送的第一个xhr GET / POST请求。这将是POST请求的90%。

现在,当您在请求参数中选择该请求时,它将显示您在提交表单时输入的值。宾果!!

现在您需要做的就是使用请求在python代码中使用相关的请求标头和参数来模仿此请求。还有Wooshh !!

希望有所帮助......