我正在尝试创建一个简单的Wikipedia克隆,允许用户搜索一个主题,然后显示10条结果,其中包含文章的图像和一小段文本。我已经能够.ajax()
毫无问题地将用户提供的搜索字段传递给我的电话。但是现在我无法检索图像,我已经阅读了StackOverflow上有关此问题的所有其他文章,但没有成功。
$(document).ready(function() {
var input = $('input');
var button = $('button');
//Create varialbe to store search field
var toSearch = '';
//Api data:
var searchUrl = 'https://en.wikipedia.org/w/api.php';
//.ajax() to get articles
var ajaxArticle = function() {
$.ajax({
url: searchUrl,
dataType: 'jsonp',
data: {
action: 'query',
format: 'json',
prop: 'extracts',
exchars: '200',
exlimit: 'max',
explaintext: '',
exintro: '',
rawcontinue: '',
generator: 'search',
gsrsearch: toSearch,
gsrnamespace: '0',
gsrlimit: '10'
}, //End data:
success: function(json1) {
console.log(json1);
}
}); //End .ajax()
}
//.ajax() to get images
var ajaxImage = function() {
$.ajax({
url: searchUrl,
dataType: 'jsonp',
data: {
'action': 'query',
'titles': toSearch,
'prop': 'pageimages',
'format': 'json'
}, //End data:
success: function(json2) {
console.log(json2)
}
}); //End .ajax()
}
//Auto complete search bar
input.autocomplete({
source: function(request, response) {
$.ajax({
url: searchUrl,
dataType: 'jsonp',
data: {
'action': "opensearch",
'format': "json",
'search': request.term
},
success: function(data) {
response(data[1]);
}
});
}
}); //End auto compelete
//Listen for click on button to store search field
button.click(function() {
toSearch = input.val();
ajaxArticle();
ajaxImage();
}); //End click handler
})
<html>
<body>
<head>
<title>My Wikipedia Viewer</title>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/themes/smoothness/jquery-ui.css" />
</head>
<section>
<input type='text' value='' placeholder='Search for...'>
<button>Make it so</button>
</section>
<section class='articles'></section>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"></script>
<script type='application/javascript' src='js/script.js'></script>
</html>
感谢您提供的任何帮助。
您可以在一个请求中检索文本和图像,请尝试以下操作:
$(document).ready(function () {
var articles = $('.articles');
var input = $('input');
var button = $('button');
var toSearch = '';
var searchUrl = 'https://en.wikipedia.org/w/api.php';
var ajaxArticleData = function () {
$.ajax({
url: searchUrl,
dataType: 'jsonp',
data: {
//main parameters
action: 'query',
format: 'json',
generator: 'search',
//parameters for generator
gsrsearch: toSearch,
gsrnamespace: 0,
gsrlimit: 10,
prop: 'extracts|pageimages',
//parameters for extracts
exchars: 200,
exlimit: 'max',
explaintext: true,
exintro: true,
//parameters for pageimages
piprop: 'thumbnail',
pilimit: 'max',
pithumbsize: 200
},
success: function (json) {
var pages = json.query.pages;
$.map(pages, function (page) {
var pageElement = $('<div>');
//get the article title
pageElement.append($('<h2>').append($('<a>').attr('href', 'http://en.wikipedia.org/wiki/' + page.title).text(page.title)));
//get the article image (if exists)
if (page.thumbnail) pageElement.append($('<img>').attr('width', 150).attr('src', page.thumbnail.source));
//get the article text
pageElement.append($('<p>').text(page.extract));
pageElement.append($('<hr>'));
articles.append(pageElement);
});
}
});
};
input.autocomplete({
source: function (request, response) {
$.ajax({
url: searchUrl,
dataType: 'jsonp',
data: {
'action': "opensearch",
'format': "json",
'search': request.term
},
success: function (data) {
response(data[1]);
}
});
}
});
button.click(function () {
articles.empty();
toSearch = input.val();
ajaxArticleData();
});
});
<!DOCTYPE html>
<html>
<head>
<title>My Wikipedia Viewer</title>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/themes/smoothness/jquery-ui.css" />
</head>
<body>
<section>
<input type='text' value='' placeholder='Search for...'>
<button>Search</button>
</section>
<section class='articles'></section>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"></script>
</body>
</html>
问题内容: 有什么方法可以使用API访问任何维基百科页面的缩略图?我的意思是方框中右上角的图像。是否有任何API? 问题答案: http://en.wikipedia.org/w/api.php 看看。 它返回已解析页面中使用的图像文件名数组。然后,您可以选择进行另一个API调用以找出完整的图像URL,例如: 或通过文件名的hash计算URL。 不幸的是,虽然返回的图像数组是在页面上找到的顺序
我一直在寻找一种基于搜索字符串查询wikipedia api的方法,该搜索字符串包含以下属性的文章列表: 标题 片段/描述 与文章相关的一个或多个图像。 我还必须使用jsonp进行查询。 我尝试过使用list=search参数 http://en.wikipedia.org/w/api.php?action=query 但它似乎忽略了prop=images,我还尝试了使用prop=imageinf
我有mp4视频文件,我需要在我的页面上加载,我正在使用MSE,但我不知道如何将我的视频分成带有. m4s扩展名的片段,以head. m4s作为父片段,并包含有关我的所有信息视频文件存储在其中?请帮助。
问题内容: 我尝试使用Python的urllib来获取Wikipedia文章: 但是,我得到的不是HTML页面,而是以下响应:错误-Wikimedia Foundation: 维基百科似乎阻止了不是来自标准浏览器的请求。 有人知道如何解决此问题吗? 问题答案: 你需要使用的urllib2是superseedes的urllib在蟒蛇STD库,以改变用户代理。 直接从例子
问题内容: 我正在编写一些Java代码,以便使用Wikipedia在文本上实现NLP任务。如何使用JSoup提取Wikipedia文章的所有文本(例如,http://en.wikipedia.org/wiki/Boston中的所有文本)? 问题答案: 当然,您可以通过这种方式检索格式化的内容。如果您想要“原始”内容,则可以使用或使用call 过滤结果。
我找不到如何从< code>Activity更改fragment的< code>textview。我有4个文件: frag_class.xml有textView,我想更改MainActivity.java的文本。FragmentClass扩展了片段,此片段显示在MainActivity中,FragmentClass具有: 在MainActivity中,我尝试了这个: 但可悲的是,这段代码给了我Nu