我正在探索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()
答案 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)