首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网络爬虫类型程序- wiki分离度

网络爬虫类型程序- wiki分离度
EN

Stack Overflow用户
提问于 2011-05-26 17:38:58
回答 2查看 210关注 0票数 0

受今天xkcd工具提示的启发,我得到了一个有趣的小项目。基本上前提是,对于任何维基百科文章,如果你一遍又一遍地点击第一个链接(即不在括号内或斜体中),最终你会得到哲学文章。

我正在尝试编写一个程序,它基本上是随机选择一个维基百科页面(可能使用http://en.wikipedia.org/wiki/Special:Random URL),然后从哲学上确定页面的“深度”。

我用C(我最熟悉的语言)拼凑了一个程序,只是为了把计划搞清楚,很快就意识到除了两个“小”问题(也就是重要的部分)之外,我知道如何做大部分的事情:

代码语言:javascript
复制
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语言完成所有/大部分工作)

感谢您的任何帮助,提示,链接或正确方向的点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-26 17:58:20

  1. 找到一个超文本标记语言解析器库(libxml2可以做这项工作),并阅读它的手册。
  2. 找到一个XPath客户端库(并阅读它的手册),然后查看1.
票数 1
EN

Stack Overflow用户

发布于 2011-05-26 17:54:56

我对任何在Wikipedia上运行的程序的建议是:不要使用HTML语言,而是解析SQL dump,特别是链接表。我的Wikiassoc程序中提供了一个link table parser (用C++编写,而不是用C编写)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6136535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档