0

サーバーから返された多くの情報をデコードしようとしています。

事実上、返されたデータを印刷しているだけです。データ自体は正しいですが、「<」ではなく「\u003c」などを取得しています...これらすべてを実際の文字に変換しようとしています!

編集:

コード:

$url = "http://people.gaa.ie/club/fixResult.jsp?callback=?&clubID=1329&compID=6785&leagueTable=N&colour=1E58AC";
$content = get($url);

print $content;

出力スニペットは次のとおりです。

parseJSON({"content":"\u003cdiv id\u003d\"fixtures\"\u003e\n\u003cdiv class\u003d\"aFixture\" style\u003d\"display:none;\"\u003e\n\t\u003ch5 class\u003d\"primaryColor\"\u003eSenior Football Championship Group Two\t\u003c/h5\u003e\n\t\u003ch5 class\u003d\"primaryColor\"\u003e20.04.12 (Fri)\u003c/h5\u003e\n\t\u003cul class\u003d\"fixtures_list\"\u003e\n\t\t\u003cli\u003e\n\t\t\t\u003cp style\u003d\"font-weight:bold;\"\u003e\n\t\t\t\tRound 1\n\t\t\t\u003c/p\u003e\n\t\t\t\u003cp\u003e\n\t\t\t\t\u003cspan class\u003d\"teams\"\u003e\u003ca href\u003d\"#\" onclick\u003d\"Javascript:loadContent(\u0027clubID\u003d1329\u0026compID\u003d6785\u0026leagueTable\u003dY\u0026colour\u003d1E58AC\u0027);\"\u003eClashmore/Kinsalebeg\u003c/a\u003e\u003c/span\u003e\u0026nbsp;1-9\u0026nbsp;V\u0026nbsp;0-8\u0026nbsp;\u003cspan class\u003d\"teams\"\u003e\u003ca href\u003d\"#\" onclick\u003d\"Javascript:loadContent(\u0027clubID\u003d2060\u0026compID\u003d6785\u0026leagueTable\u003dY\u0026colour\u003d1E58AC\u0027);\"\u003eAn tSráidbhaile\u003c/a\u003e\u003c/span\u003e\n\t\t\t\u003c/p\u003e\n\t\t\t\u003cp\u003e\n\t\t\t\tTime: 8 00 PM , Venue: Fraher Field\n\t\t\t\u003c/p\u003e\n\t\t\t\u003cp\u003e\n\t\t\t\tReferee: John Condon\n\t\t\t\u003c/p\u003e\n\t\t\u003c/li\u003e\n\t\u003c/ul\u003e\n\u003c/div\u003e\n\u003cdiv class\u003d\"aFixture\" style\u003d\"display:none;\"\u003e\n\t\u003ch5 class\u003d\"primaryColor\"\u003e29.04.12 (Sun)\u003c/h5\u003e\n\t\u003cul class\u003d\"fixtures_list\"\u003e\n\t\t\u003cli\u003e\n\t\t\t\u003cp style\u003d\.....

Beautiful Soup を使用してこのデータをトラバースしたいのですが、データ自体はすべて HTML コードです。私はそれをフォーマットで欲しい:

<div id="fixtures"><div class="aFixture>...... etc...

「<」、「=」記号は、関連する文字ではなく UNICODE 値で表されます。

4

1 に答える 1

2

出力に使用されるフォーマットの選択はばかげています。JSONを返す代わりに、JQuery関数を呼び出すJavaScriptコードを返します。

まず、JSONを抽出します。

my ($json) = $content =~ /^parseJSON\((.*)\)$/;

次に、お気に入りのJSONパーサーで解析します。

use JSON::XS qw( decode_json );
my $html = decode_json($json)->{content};

出力:

<div id="fixtures">
...
于 2013-01-16T00:08:46.187 に答える