Rebol 3 - ЧИТАТЬ веб-сайты

Основной вопрос, но мои первые пять минут просмотра документации ничего полезного мне не сказали.

В ребол 2:

>> read http://www.google.com
== {<!doctype html><html itemscope="itemscope" itemtype="http://schema.org/WebPage"><head><meta content="Search the world's informa...

В ребол 3:

>> read http://www.google.com
== #{
3C21646F63747970652068746D6C3E3C68746D6C206974656D73636F70653D22
6974656D73636F706522206974656D747970653D22687474703A2F2F73636865
6D612E6F72672F57656250616765223E3C686561643E3C6D65746120636F6E74
656E743D225365617263682074686520776F726C64277320696E666F726D6174
696F6E2C20696E636C7564696E672077656270616765732C20696D616765732C
20766964656F7320616E64206D6F72652E20476F6F676C6520686173206D616E
79207370656369616C20666561747572657320746F2068656C7020796F752066
696E642065786163746C79207768617420796F7527...

Я понимаю, что это двоичный код base-16, но как мне преобразовать его в форму, которую легко проанализировать? Нужно ли мне сначала преобразовать правила синтаксического анализа в двоичные?


person kealist    schedule 11.07.2013    source источник


Ответы (2)


Вывод в формате base-16, который вы видите, представляет собой красиво напечатанное представление того, что внутренне представляет собой простой двоичный файл !, последовательность 8-битных байтов:

>> type? read http://www.rebol.com/       
== binary!

parse отлично работает с двоичным кодом !, так что вы можете просто использовать результат с PARSE сразу.

В качестве альтернативы вы можете декодировать результат UTF-8 в строку! через to-string:

>> type? to-string read http://www.rebol.com/
== string!
person earl    schedule 11.07.2013

Или, чтобы более точно отразить ваш вопрос, вот строковый вывод

>> to-string read http://www.rebol.com/
== {<!doctype html>
<html><head>    
<meta name="generator" content="REBOL WIP Wiki"/>
<meta name="date" content="24-Jun-2013/20:08:20-7:00"/>
..
person ingo    schedule 12.07.2013