0

我正在探索Kenneth Reitz 的 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)

但是,该值没有在输入字段上设置并且它没有提交表单......有没有办法模拟按钮点击或通过xhrrequests_html 提交表单?

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

element.click()
4

1 回答 1

2

好的,以下代码适用于我的情况:

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)
于 2019-02-26T16:16:30.227 回答