是否有JavaScript语句可以从网页中检索内容/文本?通过javascript获取网页文本
2
A
回答
1
这是一种奇怪的事情。你是指<p>
和<span>
之类的标签或<title>
之类的标签?你确定你需要在JS中做这个,如果你正在刮一整页?听起来像一个XSS攻击:P
副手,我不知道任何内置的,将做到这一点,但你总是可以写一个函数来访问DOM与document.getElementsByTagName
和刮这样的文字。
3
您可以使用Range
s/TextRange
s。这具有仅获得页面上的可见文本的优点(例如,与非IE浏览器中的元素的textContent
属性不同,其也将得到<script>
的内容以及可能的其他元素)。以下内容适用于所有主流浏览器,尽管我无法保证不同浏览器之间换行符的一致性。
UPDATE 2012年11月
我不认为这是一个好主意,这些天。虽然Selection
现在被指定,its toString()
method is not,并在一段时间(包括当微软正在实施它的IE 9),它被指定为像textContent
行为。对于这种特殊的方式,浏览器的一致性得到了更糟而不是更好,因为2009年
function getBodyText(win) {
var doc = win.document, body = doc.body, selection, range, bodyText;
if (body.createTextRange) {
return body.createTextRange().text;
} else if (win.getSelection) {
selection = win.getSelection();
range = doc.createRange();
range.selectNodeContents(body);
selection.addRange(range);
bodyText = selection.toString();
selection.removeAllRanges();
return bodyText;
}
}
alert(getBodyText(window));
0
如果你只是想在页面的HTML内容您目前使用的:
var html = document.getElementsByTagName('html')[0].innerHTML;
如果你想另一个页面的HTML谷歌“阿贾克斯”
1
如果你想刮的页面来自同一个域,它是相当直接的。您只需使用AJAx将该页面作为文本获取,然后从那里找到您想要的内容。这里有一个例子:
<script>
function ajax(url, callbackFunction) {
var request = new XMLHttpRequest();
request.open("GET", url, true);
request.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
request.onreadystatechange = function() {
var done = 4, ok = 200;
if (request.readyState == done && request.status == ok) {
if (request.responseText) {
callbackFunction(request.responseText);
}
}
};
request.send();
}
var buttonClicked = function() {
ajax('/~jedi/index.html', getComplete);
}
var getComplete = function (text) {
alert(text);
}
</script>
<button onclick="buttonClicked()">Debug</button>
如果页面来自不同的领域,你的运气了。你需要在服务器上这样做。您可以使用IFrame从不同的域加载页面上的数据(您可以通过编程方式创建一个不可见的IFrame),但由于安全策略,浏览器不允许您读取该数据。
相关问题
- 1. 通过Javascript获取网页内容通过Javascript
- 2. 通过java获取网页
- 3. Javascript从外部网页获取文本
- 4. 通过https获取网页通过https
- 5. 获取网页并使用javascript读取它通过使用javascript
- 6. 通过jQuery获取网页高度
- 7. 如何通过javascript获取客户端网页cookie信息
- 8. 通过javascript获取primefaces版本
- 9. 通过网页浏览器从javascript中读取文件
- 10. 如何通过Javascript或Jquery将本地文件读入网页?
- 11. 在html文档中通过xpath和javascript获取TAG文本
- 12. 通过网络获取文件权限
- 13. 使用HTTPClient获取网页的文本
- 14. 获取网页上的文本框
- 15. 如何通过JavaScript获取文件名?
- 16. 通过@Anywhere JavaScript API获取推文
- 17. 获取网页API过滤
- 18. Javascript - 通过获取方式获得值通过获取方法
- 19. 如何通过php从我的服务器以外的网页获取文本?
- 20. 通过javascript获取filesname
- 21. 通过javascript获取来自contenteditable div的文本内容
- 22. 获取通过javascript创建的输入文本的值
- 23. 通过Gridview获取下拉选定的文本javascript onclick
- 24. 如何通过JavaScript获取textarea元素内的选定文本?
- 25. 通过xpath获取webelement的文本
- 26. 通过文本获取dom节点
- 27. 通过执行url获取html文本
- 28. Azure:通过网页下载时获取通知
- 29. 如何通过网页抓取获取表情符号?
- 30. 通过Javascript获取上季度和本季度的日期通过JavaScript
可能的重复:http://stackoverflow.com/questions/822452/strip-html-from-text-javascript – 2013-05-10 19:31:10