从D中的网页读取数据?

时间:2013-01-01 15:43:36

标签: d phobos

如何简单地打开网址并使用D从网页中读取数据? (如果需要使用标准的lib功能,我更喜欢phobos而非tango)

2 个答案:

答案 0 :(得分:4)

curl在标准库中。您可以很容易地获取网址:

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-including-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,这非常相似(虽然也在很多方面进行了扩展)。

答案 1 :(得分:3)

我认为std.net.curl绑定是你最好的选择,特别是它的get / post方法(例子在文档中):http://dlang.org/phobos/std_net_curl.html#get

毕竟,curl是专为此类任务而设计的,绑定是phobos的一部分。