//递归
void repeat(c) {
//需要重复的代码
if (xx) {
repeat(xx);
}
}
//goto 代替递归
void repeat(c) {
loop:
//需要重复的代码
if (xx) {
goto loop;
}
}
//一个采集程序
public void Run(string listurl)
{
using (var wc = new WebClient())
{
loop:
string html = Encoding.GetEncoding("utf-8").GetString(wc.DownloadData(listurl));
var doc = new HtmlDocument();
doc.LoadHtml(html);
var nodes = doc.DocumentNode.SelectNodes("//ul[@id=\"data_list\"]/li/div/a");
for (int i = 0; i < nodes.Count; i++)
{
var node = nodes[i];
string link = "http://www..cn" + node.Attributes["href"].Value;
string title = node.SelectSingleNode("span[@class=\"sTit\"]").InnerText;
Save(title, link);
}
var nextnode = doc.DocumentNode.SelectSingleNode("//div[@class='page mb clearfixs']/em/following-sibling::a");
if (nextnode != null)
{
listurl = "http://www..cn" + nextnode.Attributes["href"].Value;
goto loop;
}
}
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.