Ale*_*ing 36 forms post automation http
我正在尝试自动登录网站并提交表单.
是否有一个浏览器插件(用于Firefox或Chrome)允许您以允许它们稍后播放的形式记录HTTP GET和POST请求?我正在寻找可以通过脚本自动化的东西,例如通过curl或wget.
我尝试使用Chrome开发人员工具来捕获POST表单数据但是在尝试使用wget复制请求时出现错误,这表明我缺少一些cookie或其他参数.理想情况下,这样做会有一种很好的自动化方式,而不是进行大量的反复试验.
huy*_*uyz 23
对于简单的交互,您实际上不需要像Selenium这样的工具来记录和回放请求.
你只需要你已经提到过的工具:
curl
和wget
支持cookie和POST数据,但我只尝试了自动化卷曲.有几个关键步骤需要正确完成(这需要一些经验):
curl
,并wget
会确保cookie和重定向正确处理.以下是我为自助脚本编写的3个卷曲调用的示例,我写这些脚本是为了从ISP下载宽带使用情况:
curl \
--silent \
--location \
--user-agent "$USER_AGENT" \
--cookie-jar "$COOKIES_PATH.txt" \
'https://idp.optusnet.com.au/idp/optus/Authn/Service?spEntityID=https%3A%2F%2Fwww.optuszoo.com.au%2Fshibboleth&j_principal_type=ISP' >$USAGE_PATH-1.html 2>&1 && sleep 3 &&
# --location because the previous request returns with a series of redirects "302 Moved Temporarily" or "302 Found"
curl \
--silent \
--location \
--user-agent "$USER_AGENT" \
--cookie "$COOKIES_PATH.txt" \
--cookie-jar "$COOKIES_PATH.txt" \
--referer 'https://idp.optusnet.com.au/idp/optus/Authn/Service?spEntityID=https%3A%2F%2Fwww.optuszoo.com.au%2Fshibboleth&j_principal_type=ISP' \
--data "spEntityID=https://www.optuszoo.com.au/shibboleth&j_principal_type=ISP&j_username=$OPTUS_USERNAME&j_password=$OPTUS_PASSWORD&j_security_check=true" \
'https://idp.optusnet.com.au/idp/optus/Authn/Service' >$USAGE_PATH-2.html 2>&1 && sleep 1 &&
curl \
--silent \
--location \
--user-agent "$USER_AGENT" \
--cookie "$COOKIES_PATH.txt" \
--cookie-jar "$COOKIES_PATH.txt" \
--referer 'https://www.optuszoo.com.au/' \
'https://www.optuszoo.com.au//r/ffmu' >$USAGE_PATH-3.html 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
请注意谨慎使用--cookie-jar
,--cookie
和--location
.在sleep
S,--user-agent
以及--referer
可能没有必要(后端可能不检查),但它们也非常简单,我包括他们的错误的可能性降到最低.
在这个例子中,我很幸运,没有动态POST字段,例如反CSRF nonce字段,我将不得不提取并传递给后续请求.那是因为这种自动化用于身份验证.为了自动化其他类型的Web交互,在用户已经登录之后,您可能会遇到更多这些动态生成的字段.
归档时间: |
|
查看次数: |
53650 次 |
最近记录: |