受今天xkcd工具提示的启发,我得到了一个有趣的小项目。基本上前提是,对于任何维基百科文章,如果你一遍又一遍地点击第一个链接(即不在括号内或斜体中),最终你会得到哲学文章。
我正在尝试编写一个程序,它基本上是随机选择一个维基百科页面(可能使用http://en.wikipedia.org/wiki/Special:Random URL),然后从哲学上确定页面的“深度”。
我用C(我最熟悉的语言)拼凑了一个程序,只是为了把计划搞清楚,很快就意识到除了两个“小”问题(也就是重要的部分)之外,我知道如何做大部分的事情:
char *grab_first_link(page, int n){
//return url of 1st link not in italics or inside parentheses
}
void get_random_page{
//go to http://en.wikipedia.org/wiki/Special:Random
//wait 2 seconds
//return the URL generated by the random page
}因此,基本上我正在寻找一个能够帮助处理简单HTML页面的库。以及一些关于如何根据上述规则获得正确链接的提示。
(还有-我相信有一种million+1方法可以更有效/更容易地完成这项工作,我只是好奇是否可以用C语言完成所有/大部分工作)
感谢您的任何帮助,提示,链接或正确方向的点。
发布于 2011-05-26 17:58:20
发布于 2011-05-26 17:54:56
我对任何在Wikipedia上运行的程序的建议是:不要使用HTML语言,而是解析SQL dump,特别是链接表。我的Wikiassoc程序中提供了一个link table parser (用C++编写,而不是用C编写)。
https://stackoverflow.com/questions/6136535
复制相似问题