如何解决Web爬虫式程序-Wiki分离度
| 受今天的xkcd工具提示启发,我得到了一个有趣的小项目。 基本上,前提是对于任何Wikipedia文章,如果您一遍又一遍地跟踪第一个链接(不在括号内或斜体),则最终将获得Philosophy文章。 我正在尝试编写一个程序,该程序基本上是随机选择一个维基百科页面(可能使用http://en.wikipedia.org/wiki/Special:Random URL),然后从Philosophy确定页面“深度”。 我已经打开了一个用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页面的库。以及有关如何根据上述规则获得正确链接的一些技巧。
(而且-我敢肯定,有100万种方法可以更有效/更轻松地完成此操作,我很好奇我是否可以全部/大部分用C语言完成)
感谢您提供的任何帮助,提示,链接或指向正确方向的信息。
解决方法
查找一个HTML解析器库(libxml2可以完成此工作)并阅读其手册。 XPath可能是您的朋友。
找到一个HTTP客户端库(并阅读其手册),然后参阅1。
,对于任何可在Wikipedia上运行的程序,我的建议是:不要使用HTML;不要使用HTML。而是解析SQL转储,特别是链接表。链接表解析器(在C ++中,不是C)是我的Wikiassoc程序的一部分。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。