好的,这是一种技巧。我有这样的文字:
<something>
<h1> quoiwuqoiuwoi aoiuoisquiooi
<script> dsadsa dsa </script>
Some text here in the middle! =)
<script> dsadsa dsa </script>
</h1>
</something>
我想只获得没有标签的内容,换句话说:
<h1> quoiwuqoiuwoi aoiuoisquiooi
Some text here in the middle! =)
</h1>
包括标签。
做了一些研究我发现我可以使用以下正则表达式获取h1标签之间的所有内容:
/<h1([^]*)h1>/
然而,我找不到一种方法来排除标签之间的问题。包括脚本标签本身。任何帮助都会得到很大的帮助。
如果有人想知道我为什么需要这个,这里有一个简短的解释:
我正在使用此代码使用googleSpreadSheet来搜索网站上的某些数据:
function doGet() {
var html = UrlFetchApp.fetch('https://www.nespresso.com/br/pt/product/maquina-de-cafe-espresso-pixie-clips-c60-preta-e-lima-neon-110v').getContentText();
var regExp = new RegExp("<h1([^]*)h1>", "gi");
var h1 = regExp.exec(html);
Logger.log(h1);
var doc = XmlService.parse(h1[0]);
var html = doc.getRootElement();
var menu = getElementsByClassName(html, 'nes_pdp-title nes_pdp-title-sep-none')[0];
var output = menu.getText();
Logger.log(output);
}
解析脚本标记和iframe时遇到问题。我能找到的唯一解决方案是从它们中删除代码。如果有人有更好的解决方案,我会全力以赴。
如果我不删除脚本和iframe标记,代码会在我调用.getElementsByTagName之前中断。当我使用.XmlService()时它会中断。如果它没有javascript或iframe标记,我只能将一个valeu传递给XmlSevive()。 再次感谢你!