博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过维基API实现维基百科查询功能
阅读量:5896 次
发布时间:2019-06-19

本文共 4329 字,大约阅读时间需要 14 分钟。

通过英文维基的免费API,可以实现对维基百科的搜索查询或者标题全文查询等,尝试了一下通过title实现全文查询,返回的结果是wikitext格式,暂时不知道该如何应用,所以仅实现了查询功能,可以返回最接近的10条信息的标题、摘要、图片及链接。

我的DEMO页:

如下图:

搜索结果:

HTML如下:

CSS就不贴了,JS如下:

$(function(){    (function(){        var url='https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&origin=*&gsrsearch=';                // search函数,通过AJAX/wikiAPI得到响应信息        function search(url){            $.ajax({                url: url,                success:function(response){                    // 获取响应信息中的pageid                    var x=[];                    for (var pageid in response.query.pages) {                        x.push(pageid);                    }                    // 得到每个pageid的信息,包括搜索标题,摘要,链接,图片等                    $(x).each(function(index, el) {                        var page=response.query.pages[x[index]];                        var title=page.title;                        var extract=page.extract;                        var imgsrc="";                        try{                            imgsrc=page.thumbnail.source;                        }catch(e){}                        var listcontent="";                        if(imgsrc){                            listcontent="";                        }                        listcontent+=extract;                        var href="http://en.wikipedia.org/wiki/"+encodeURIComponent(title);                        var list=$(".searchresult ol li").eq(index);                        list.find('a').text(title).attr('href', href);                        list.find('p').html(listcontent);                    });                }            });        }        // 点击搜索按钮后触发        $(".searchbtn").click(function() {            var searchwhat=$(".inputbox").val();            if(searchwhat&&searchwhat!=="please input something"){                var searchurl=url+searchwhat;                search(searchurl);                // 动画效果                $(".logo img").fadeOut();                $(".searchbox").animate({marginTop:"5px"}, 400,function(){                    $(".searchresult").animate({height:"show"}, 600);                });            }else{                $(".inputbox").val("please input something").trigger('focus');            }        });        // 文本框获得焦点后触发        $(".inputbox").focus(function() {            $(this).select();            $(".searchbox").animate({marginTop:"300px"}, 400 ,function(){                $(".logo img").fadeIn();            });            $(".searchresult").stop(true,true).animate({height:"hide"}, 600);        }).keyup(function(event) {            // 按回车触发搜索            if (event.keyCode==13) {                $(".searchbtn").trigger('click');                $(".inputbox").blur();            }        });    })();});

关键点还是在于维基的API,关于维基API的信息,可以查看:

以及

我的DEMO页:

转载地址:http://rvxsx.baihongyu.com/

你可能感兴趣的文章
Gridview控件导出Excel之后图片无法显示
查看>>
FastJson
查看>>
UVA 10564 - Paths through the Hourglass (dp)
查看>>
ASP.NET Web API自身对CORS的支持: EnableCorsAttribute特性背后的故事
查看>>
Eclipse 常用快捷键
查看>>
INDEX--索引页上存放那些数据
查看>>
INDEX--关于索引的琐碎
查看>>
sql查看所有表大小的方法
查看>>
UNIX网络编程读书笔记:TCP输出、UDP输出和SCTP输出
查看>>
扩展 DbUtility (1)
查看>>
iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
查看>>
使用UITableView实现图片视差效果
查看>>
CentOS RHEL 安装 Tomcat 7
查看>>
Apple Developer Registration and DUNS Number Not Accepted
查看>>
Hadoop学习笔记系列文章导航
查看>>
iOS开发-NSOperation与GCD区别
查看>>
Win7 64位 php-5.5.13+Apache 2.4.9+mysql-5.6.19 配置
查看>>
不同页面之间实现参数传递的几种方式讨论
查看>>
程序员进阶之路—如何独当一面
查看>>
SpringMVC中ModelAndView addObject()设置的值jsp取不到的问题
查看>>