【问题标题】:Using YQL in javascript/php to scrape article html?在 javascript/php 中使用 YQL 来抓取文章 html?
【发布时间】:2011-06-18 20:07:02
【问题描述】:

我是 YQL 的新手,只是想学习如何完成一些相当简单的任务。

假设我有一个 URL 列表,我想在 javascript 中将它们的 HTML 源作为字符串获取(这样我以后可以通过 ajax 将其插入数据库)。我将如何在 Javascript 中获取这些信息?还是我必须用 PHP 来做?我对任何一个都很好,真的 - 任何可以工作的。

这是我在他们的控制台上运行的示例查询:

select * from html where url="http://en.wikipedia.org/wiki/Baroque_music"

目标是本质上将 HTML 或者可能只是文本或其他内容保存为字符串。

我该怎么做呢?我有点了解查询是如何工作的,但并不真正了解如何与 javascript 和/或 php 集成(比如我有一个 URL 列表,我想遍历它们,获取每个 html 并将其保存在某处)。

谢谢。

【问题讨论】:

  • 您是否有特殊原因要使用 JavaScript 获取 HTML/文本,然后稍后通过 AJAX 将其保存在服务器上?您会在保存之前在浏览器中操作内容吗?

标签: php javascript html yql


【解决方案1】:

由于网络浏览器的内置安全功能,您无法使用 Javascript 阅读其他页面。它被称为Same origin policy

通常的方法是使用 PHP 从服务器上抓取这些网站的内容。

还有一个 javascript 选项,称为 bookmarklet

您可以在书签栏中添加小书签,每次您想要网站内容时单击书签。

一个脚本将加载到主机页面中,它可以读取内容并将其发布回您的服务器。

奇怪的是,同源策略并不会阻止您将数据从该主机页面发布到您的域。您需要将 FORM 发布到 IFRAME,该 IFRAME 的源托管在您的域上。

您将无法读取从 POST 中返回的响应。
但是您可以通过 setInterval 向您的域调用 JSONP 进行轮询,以了解 POST 是否成功。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    相关资源
    最近更新 更多