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

我试图仅使用javascript从维基百科中摘取第一段。基本上,我想做的是

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树上工作,而不是在字符串上,而且字符串实际上没有该方法。