Javascript 从网页获取数据
我试图仅使用javascript从维基百科中摘取第一段。基本上,我想做的是Javascript 从网页获取数据,javascript,html,wikipedia-api,Javascript,Html,Wikipedia Api,我试图仅使用javascript从维基百科中摘取第一段。基本上,我想做的是 document.getElementsByTagName("P")[0] 除了它不在我的网页上,我想从维基百科获取一个给定的页面并应用该功能。我目前的代码是: Uncaught TypeError: undefined is not a function 我的代码: function getWikiDescription(searchTerm) { var theURL = "http://en.wikip
document.getElementsByTagName("P")[0]
除了它不在我的网页上,我想从维基百科获取一个给定的页面并应用该功能。我目前的代码是:
Uncaught TypeError: undefined is not a function
我的代码:
function getWikiDescription(searchTerm)
{
var theURL = "http://en.wikipedia.org/wiki/" + searchTerm.replace(" ", "_");
var article = null;
$.get(theURL, function(data){
wikiHelper(data);
}, "html");
}
function wikiHelper(data)
{
alert(data);
console.log(data.getElementByTagName("p")[0]);
}
getWikiDescription("godwin's law");
数据基本上变成一个包含所有html的巨大字符串,但getElementByTagName函数不起作用。如果您有任何帮助,我们将不胜感激。浏览器通常不允许向不同于脚本来源的域发送ajax请求。你不能像那样只发送和ajax请求到你喜欢的任何页面。 了解
关于。您可以使用jQuery和WikimediaAPI都支持的JSONP,方法是使用?callback=?查询参数
"use strict";
var endpoint = 'http://en.wikipedia.org/w/api.php';
$.ajax({
url: endpoint,
crossDomain: true,
dataType: 'jsonp',
data: {
format: "json",
action: "parse",
page: "Bay_View_Historical_Society"
},
error: function(xhr,status,error){
alert( error );
}
}).done(function(rawhtml){
var dom_object = $( '<div>' + rawhtml.parse.text['*'] + '</div>' );
var p = $(dom_object).find('p').first();
p.appendTo('#output');
});
工作示例:
jQuery并不是严格必需的,但它使代码简洁易读
该代码执行以下操作:
对内容发出JSONP请求
将标记下拉为文本
将文本转换为DOM结构
查询第一个节点doc.getElementsByTagname的DOM结构[0]
它是getElementsByTagName,带有一个s。这可能仍然不起作用,但这是一个开始!很好,但这并不能解决问题。这是一个字符串,不是dom树。getElementsByTagName在dom树上工作,而不是在字符串上,而且字符串实际上没有该方法。