繁体   English   中英

如何使用Javascript或JQuery获取页面内容

[英]How to get page content using Javascript or JQuery

我将在远程页面上有一个小部件。 在小部件中,我希望javascript或jquery从网页中获取所有文章内容,然后将其发送回我的网站。 我只需要文章内容,而不需要网页上的所有其他信息。 我希望脚本发送远程网页的url,页面内容,标题文本和h1文本。 我不希望收到任何html标签。 这可能吗?

我正在编写的脚本就像google adsense。 另外,我将使用c#作为后端服务器

这样的事情会起作用吗? http://blog.nparashuram.com/2009/08/screen-scraping-with-javascript-firebug.html

我的建议是,如果数据不是太多,那就使用信标。

var beac = new Image();
beac.onload = function () {
  //do somethiringng on completion
}
beac.src = "youdomain/somthing.php?var=asdasd&key=someUniqueString";

只要您不需要任何东西,这便可以将适量的数据发送到另一个域上的服务器。

简而言之,您无法做到这一点,至少不能达到您的预期。 出于安全原因,有一个同源策略可以阻止您向另一个域发出请求。

最好的选择是在服务器上执行此操作,然后向其发出请求。 我不能说您将如何在服务器上执行此操作,因为您的问题不包括您所使用的框架,但是假设它是PHP,那么您将使该页面带有URL或其他内容。可以从中生成URL,然后返回包含您列出的属性的JSON对象。 jQuery部分看起来像这样:

$("a").click(function() {
  $.ajax({
    url: 'myPage.php',
    data: { url: $(this).attr("href") },
    dataType: 'json',
    success: function(data) {
      //use the properties, data.url, data.content, data.title, etc...
    }
  });
});

或者,使用$.getJSON()的简短形式...

  $.getJSON('myPage.php', { url: $(this).attr("href") }, function(data) {
      //use the properties, data.url, data.content, data.title, etc...
  });

尽管以上所有这些因素,您最好将URL发送到服务器并完全在服务器端进行,这会减少工作量。 如果您打算以他们看到的方式查看客户的页面...那么这正是防止同源政策的地方,例如,如果不是文章,而是客户的网上银行怎么办? 您可以看到为什么禁止这样做的原因:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM