我已经尝试这个简单的任务好几个小时了。似乎没有可用的库可以提供帮助,这里也没有任何问题似乎可以解决这种情况。
这很简单:
- 我将整个页面的标记作为字符串。
- 我需要使用 CSS 选择器指向元素我需要从中抓取数据。
- 我不想创建实际的 HTML DOM 元素。只从他们那里抓取数据。 该页面可能包含我不想创建的图像、音频、视频和其他元素。
- 它需要能够处理标记错误和 HTML5 样式的标记。目前,尝试将其解析为 XML 会引发“无效 XML”异常。
- 它需要在浏览器中发生。所以,没有 NodeJS 模块。
在 JAVA 中,我已经能够使用 JSoup 完全做到这一点。但是似乎没有一个在浏览器上运行的 JS 的等效库。
感谢您的宝贵时间。
最佳答案
@JaromandaX 的建议是正确的。一种方法是使用 DOMParser
对象。它允许您创建元素,然后对它们使用 .querySelector
或 .querySelectorAll
,同时不加载任何外部资源或运行任何脚本。
这对我有用:
var parser = new DOMParser();
var doc = parser.parseFromString(markup, "text/html");
关于javascript - 在浏览器中使用 CSS 选择器从包含 HTML 标记的字符串中抓取数据,而不创建 DOM 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38654031/