我最近一直在命令行上尝试curl,并且想知道以下是否可行。
我做了以下命令:
curl --data "ToBinary=fubar" http://www.roubaixinteractive.com/PlayGround/Binary_Conversion/Binary_To_Text.asp
我得到的是具有相应响应的整个页面(包含我想要的数据的网页),但我只想要一个特定的数据(0110011001110101011000100110000101110010)。
如果没有额外的处理,有没有办法直接获取这些信息?
答案 0 :(得分:1)
您应该使用html
解析器来提取二进制字符串,我认为curl
不能这样做。其中一个替代方案是perl及其mojolicious
模块,它允许您post
页面并使用DOM
解析器来提取内容,如下所示:
perl -Mojo -E '
say p(q{http://www.roubaixinteractive.com/PlayGround/Binary_Conversion/Binary_To_Text.asp}
=> form
=> { ToBinary => q{fubar} })
->dom
->at(q{#ToText})
->text'
它产生:
0110011001110101011000100110000101110010
答案 1 :(得分:0)
除非你能说服作者提供只返回转换数据的api,否则你无法在没有额外处理的情况下完成。另一种方法是自己动手。
ascii到二进制文本:
echo fubar | perl -pe 's/(.)/sprintf("%08b", ord($1))/eg'
二进制文本到ascii:
echo 0110011001110101011000100110000101110010 | \
perl -pe 's/([01]{8})/sprintf("%s", pack("B8", $1))/eg'