2

単純にURLを開いて、Dを使用してWebページからデータを読み取る方法は?(標準のlib機能を使用する必要がある場合は、タンゴよりもphobosの方が好きです)

4

2 に答える 2

4

curlは標準ライブラリにあります。次のように、非常に簡単にURLを取得できます。

import std.net.curl;
string content = get("d-lang.appspot.com/testUrl2");

http://dlang.org/phobos/std_net_curl.html#get

htmlを解析する必要がある場合は、私はそれがかなり得意なdomライブラリを作成しました。 https://github.com/adamdruppe/misc-stuff-include-D-programming-language-web-stuff

dom.dとcharacterencodings.dを取得すると、次のことができます。

import arsd.dom;
auto document = new Document();
document.parseGarbage(content); // content is from above, the html string

writeln(document.title); // the <title> contents
auto paragraph = document.querySelector("p");
if(paragraph is null)
     writeln("no paragraphs in this document");
else
     writeln("the first paragraph is: ", paragraph.innerText);

等々。javascript dom apiを使用したことがある場合、これは非常に似ています(ただし、多くの方法で拡張されています)。

于 2013-01-01T15:50:11.487 に答える
3

std.net.curlバインディング、特にそのget / postメソッド(例はドキュメントにあります)が最善の策だと思います:http://dlang.org/phobos/std_net_curl.html#get

結局のところ、curlはこの種のタスク用に特別に設計されており、バインディングはフォボスの一部です。

于 2013-01-01T15:47:50.960 に答える