【问题标题】:How can I use the Wikipedia API to extract/parse the link I am looking for?如何使用 Wikipedia API 提取/解析我正在寻找的链接?
【发布时间】:2015-03-16 11:37:25
【问题描述】:

在维基百科中,95% 的链接指向哲学页面。我正在尝试用 Java 编写一个程序,该程序采用维基百科上的任何链接并单击第一个链接(不是引用/声音/外部链接,也忽略了 parentitzed 链接。)

例如,如果您从这个 url http://en.wikipedia.org/wiki/Dutch_people 开始,它应该点击 Ethnic Group http://en.wikipedia.org/wiki/Ethnic_group 等等,直到它到达哲学

你应该看到这个Getting_to_Philosophy 检查http://xefer.com/wikipedia(输入任何单词)看看它是如何工作的。

我已经编写了将数据库中的数据存储在 3 列中的后端 Unique_URL_Id URL_Link Next_URL_Id 所以后面打印整个路径会更容易。

后端工作正常(如果我只给它一个要遵循的链接列表)。但是,提取和查找第一个链接并不能正常工作。

这是我为使用 jSoap API 从 URL 中提取而编写的示例代码

public static void extractWikiPage(String title) throws IOException{

        Document doc = Jsoup.connect("http://en.wikipedia.org/wiki/Europe").get();
        //int titles = doc.toString().indexOf("(");

        //Get the first paragraph where the main body contents starts
        String body = doc.getElementsByTag("p").first().toString();
        System.out.println(body);                   
            Document doc2= Jsoup.parse(body);
            Elements href=doc2.getElementsByTag("a");
            int x="".indexOf("");
            for(Element h: href){
                System.out.println(h.toString());
            }
            //System.out.println(linkText);
            System.exit(1);

        }

我只是发现'<p>' 的第一次出现,因为这是 95% 到下一页的链接开始的地方。在该段中,我正在尝试获取所有链接,但我需要第一个满足我上面写的条件的链接。

如何使用 Wikipedia API 来解决提取我正在寻找的数据的问题。感谢您的帮助。

【问题讨论】:

    标签: java mediawiki wikipedia wikipedia-api mediawiki-api


    【解决方案1】:

    /w/api.php?action=query&prop=revisions&format=json&rvprop=content&rvlimit=1&rawcontinue=&titles=Dutch_people 是返回该页面的 wikitext 的查询。

    您必须解析该结果以获取您想要的数据。您将寻找不以“一些东西:”以消除所有跨wiki链接和类别以及文件/媒体页面。

    【讨论】:

      猜你喜欢
      • 2015-04-29
      • 2019-03-31
      • 1970-01-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-11
      相关资源
      最近更新 更多