Javascript:如何从网页中检索文本
Posted
技术标签:
【中文标题】Javascript:如何从网页中检索文本【英文标题】:Javascript: How to retrieve text from a webpage 【发布时间】:2012-10-23 16:56:22 【问题描述】:我想检索网页中的文本作为字符串。这可能吗? 我是 javascript 新手。
例如:
var url = "http://en.wikipedia.org/wiki/Programming";
var result = url.getText(); <---- stores text as a string
document.write(result);
如何编写 getText 方法?以太整个 html 源代码(我可以用它来获取文本)或只是文本。我想在网络浏览器中执行此操作。
我试过了,我可以得到一个索引号:
var url = "http://www.youtube.com/results?search_query=cat&page=2";
var result;
function go()
result = url.search(/cat/i);
document.write(result);
这给了我一个 44 的索引。这意味着阅读一个页面是可能的。我可以反其道而行之,输入索引来检索文本吗?
【问题讨论】:
你的意思是整个 HTML 源代码? 您是希望在 Web 浏览器中执行此操作,还是从 Node.js 或 Rhino 等服务器端 JS 引擎执行此操作? 为了解决跨域问题,是否可以运行代理服务? 【参考方案1】:如果 Ajax/跨域情况对您来说不是问题,您可以提取网页文本
var el = document.body; // or some other element reference
var text = el.innerText || el.textContent;
如果您需要从与您的应用程序同域的页面中读取文本,您可以直接使用 Ajax。
如果您需要从域外页面读取文本,则必须跳过一些额外的环节,例如设置代理服务器或处理 CORS - http://en.wikipedia.org/wiki/Cross-origin_resource_sharing
【讨论】:
【参考方案2】:您最好使用功能更强大的服务器端语言来执行此操作,而不是 JavaScript。 Python 或 php 将是不错的选择。
【讨论】:
JavaScript 也是一种服务器端语言;另见en.wikipedia.org/wiki/… 是的,但这不是解析 HTML 的最佳选择,Python 会更好,恕我直言。 我以前在 Perl 中执行此操作,现在我在 Node.js 中执行此操作 - NPM 有很多相关的模块。有一天我真的会坐下来学习 Python :) 我真的很想在浏览器中进行。浏览器扩展会起作用吗?【参考方案3】:Ajax 不支持跨域。您需要服务器端语言。
【讨论】:
以上是关于Javascript:如何从网页中检索文本的主要内容,如果未能解决你的问题,请参考以下文章
如何使用javascript从网页中获取点击或选择的文本? [复制]
如果使用JavaScript同时包含整数和字符串,如何从CRM的文本字段的单行中检索整数值