【问题标题】:wget : get field info before sending post-datawget : 在发送后数据之前获取字段信息
【发布时间】:2014-03-01 20:10:50
【问题描述】:

我使用 wget 以及 --post-data 和 --save-cookies 选项设法通过了网站的登录表单。

现在我尝试填写网页的某些字段,然后提交。 问题是,网页上有一个“图灵”隐藏字段,每次都是不同的值。

我尝试的是打开网页,加载我的 cookie,并获取图灵值。 然后用 --post-data 做另一个 wget 并将我所有的字段放在那里,包括图灵场。但它不起作用。

另外,网页上有几个表格,所以我想我必须添加表格名称。对吗?

有什么想法吗?

<form action="article.php" method="post" name="postmessage">
 <table width="100%" class="table_lines" border="0" cellspacing="0" cellpadding="6">
  <tr>
   <td>subject</td>
   <td><input type="text" name="messageinput[0]" value=""></td>
  </tr>
  <tr>
   <td>tags</td>
   <td><input type="text" name="messageinput[1]" value=""></td>
  </tr>
  <tr>
   <td>Message</td>
   <td><input type="text" name="messageinput[2]" value=""></td>
  </tr>
  <td colspan="2" align="center"><input name="mesbut" type="submit" value="Post Message" onclick="document.postmessage.mesbut.value='Posting..'; document.postmessage.mesbut.disabled=true;document.postmessage.submit();"></td>
 </table>
 <input type="hidden" name="turing" value="wgbyp">
</form>

所以我尝试的是(登录后):

/usr/bin/wget -q --load-cookies cookie.txt http://www.myurl.com/article.php -O output.html
TURING=$(sed -n -e 's/.*name="turing" value="\(.*\)">.*/\1/p' output.html)

/usr/bin/wget -q --load-cookies cookie.txt --post-data "messageinput[0]=mysubject&messageinput[1]=&messageinput[2]=mymessage&turing=${TURING}&postmessage=1&mesbut=1"  http://www.myurl.com/article.php -O output2.html

但它不起作用。

【问题讨论】:

  • 试试printf %q "$TURING"看看它是否是正确的值。
  • 有 --save-cookies 和 --load-cookies,在您收到 cookie 的第一个请求时,或者您应该使用这两个标志来保存您的 cookie 并将其发送到服务器...尝试和他们两个。
  • 小心贪婪的量词 *sed 可能会捕获比你预想的更多。试试看:value="\([^"]*\)"

标签: bash wget postdata


【解决方案1】:

看来我的信息确实有效。 我只是没有为网页提供足够的字段。

【讨论】:

    【解决方案2】:

    第一个wget需要使用--save-cookies。

    在你的例子中,你在 cookie.txt 中得到了什么吗?

    【讨论】:

      猜你喜欢
      • 2018-06-29
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 2018-05-06
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多