在发布请求期间调用客户端JS

时间:2019-07-23 15:14:10

标签: python-3.x post web-scraping python-requests-html

如何在发布Python请求期间捕获客户端JS?我知道还有其他解决方案,例如Selenium,尽管我对完全使用发布感兴趣,

我有一个网页提交POST请求,然后依次提交一个单独的GET请求以下载文件。我能够确定POST请求

但这是从开发工具中看到的POST请求的响应

<?xml version='1.0' encoding='UTF-8'?>
<partial-response><changes><update id="list:downloadBtn_script"><![CDATA[<span id="list:downloadBtn_script"><script type="text/javascript">ice.ace.jq(ice.ace.escapeClientId('list:downloadBtn')).button();ice.ace.DataExporters['list:downloadBtn'].url('/javax.faces.resource/se46d4052-5e16-4680-932d-255e92b9fcb5.jsf');</script></span>]]></update><update id="dynamic-code-compat"><![CDATA[<span id="dynamic-code-compat"></span>]]></update><update id="javax.faces.ViewState"><![CDATA[-9000799131237535314:-3839177643747752734]]></update><eval><![CDATA[ice.applyFocus('list:downloadBtn');var iceFormIdList=['list', 'vlovqpw1njp-retrieve-update', 'vlovqpw1njp-single-submit']; ice.fixViewStates(iceFormIdList,'-9000799131237535314:-3839177643747752734');]]></eval><extension aceCallbackParam="validationFailed">{"validationFailed":false}</extension></changes></partial-response>

我得到的答复是

<?xml version='1.0' encoding='UTF-8'?>
<partial-response><changes><update id="javax.faces.ViewState"><![CDATA[-9000799131237535314:-3839177643747752734]]></update><eval><![CDATA[ice.applyFocus('list:downloadBtn');var iceFormIdList=['list', 'vlovqpw1njp-retrieve-update', 'vlovqpw1njp-single-submit']; ice.fixViewStates(iceFormIdList,'-9000799131237535314:-3839177643747752734');]]></eval><extension aceCallbackParam="validationFailed">{"validationFailed":false}</extension></changes></partial-response>

我认为这是由于客户端JS而不是服务器端导致的,因为哪个服务器没有向我发送此数据。有什么办法可以处理Python POST请求中的问题?

我需要做的是从DEV工具响应中看到的数据中提取URL部分(带有十六进制代码)以执行GET请求

0 个答案:

没有答案