0

我最近一直在命令行上尝试 curl,想知道以下是否可行。

我做了以下命令:

curl --data "ToBinary=fubar" http://www.roubaixinteractive.com/PlayGround/Binary_Conversion/Binary_To_Text.asp

我得到的是具有适当响应的整个页面(带有我想要的数据的网页),但我只想要一个特定的数据(0110011001110101011000100110000101110010)。

没有额外的处理,有没有办法直接获取这些信息?

4

2 回答 2

1

您应该使用html解析器来提取二进制字符串,我认为这curl不能做到这一点。许多替代方案之一是和它的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
于 2013-10-04T21:36:09.600 回答
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'
于 2013-10-04T22:37:20.987 回答