Python request_html通过使用JQuery单击按钮来提交表单

时间:2019-02-26 15:33:38

标签: jquery python-3.x python-requests-html

我正在探索Kenneth Reitz's requests_html,并尝试使用Jquery提交JS呈现网页的表单。我不确定该怎么做,但这是我的尝试:

from requests_html import HTMLSession
url = "https://example.com"
session = HTMLSession()
r = session.get(url)
r.html.render()
script = """
       () => {
         $("#some_input_field").val("Some value");
         $("#submit_button").click();
         }
         """
r.html.render(script=script, reload=False)

但是,该值未在输入字段上设置,也没有提交表单... 有什么方法可以模拟按钮单击,还是可以通过request_html中的xhr提交表单?

例如:如果我们使用硒,则可以通过键入以下内容轻松模拟按钮单击:

element.click()

1 个答案:

答案 0 :(得分:0)

好,以下代码在我的情况下有效:

from requests_html import HTMLSession
url = "https://example.com"
session = HTMLSession()
r = session.get(url)
r.html.render()
script = """
       () => {
              if ( jQuery.isReady ) {  
                   $("#some_input_field").val("Some value");
                   $("#submit_button").click();
              }
        }
         """
r.html.render(script=script, reload=False)

编辑:一种更好的方法应该是:

from requests_html import HTMLSession
url = "https://example.com"
session = HTMLSession()
r = session.get(url)
r.html.render()
script = """
       () => {
              $(document).ready(function() {  
                   $("#some_input_field").val("Some value");
                   $("#submit_button").click();
              })
        }
         """
r.html.render(script=script, reload=False)