crawler4j将<script> </script>标记之间的行检测为文本

时间:2019-12-26 07:22:38

标签: web-crawler html-parsing crawler4j

 <html>
 <head>
  
 </head>      
 <body> 
  <div style="width: 100%;"> This question already
  </div> 
  <div id="player"> hi crawler4j </div> 
  <script>
	player = new Clappr.Player({source: "http://123.30.215.65/hls/4545780bfa790819/5/3/d836ad614748cdab11c9df291254cf836f21144da20bf08142455a8735b328ca/dnR2MQ==_m.m3u8",
			parentId: '#player',
			width: '100%', height: "100%",
		    hideMediaControl: true,
		    autoPlay: true
					        });	
	</script>   
 </body>
</html>

<!-- begin snippet: js hide: false console: true babel: false -->

在上面作为示例给出的代码行中,我将执行以下操作;

HtmlParseData htmlParseData = (HtmlParseData) page.getParseData();
String body = htmlParseData.getHtml();

crawler4j<script> </script>标记之间的行检测为文本。 我想删除body变量中<script> </script>标记之间的所有内容,然后执行getText()。 你能帮我吗?

我要打印出来:

This question already

hi crawler4j

1 个答案:

答案 0 :(得分:1)

HtmlParseData中的

crawler4j不包含所获取HTML页面的完整DOM树。因此,String对象中包含其HtmlParseData表示形式的纯HTML。

如果要删除<script>标签之间的内容,则可以

  1. 使用正则表达式按照on this Stackoverflow post的说明删除它
  2. 使用JSoup(已经是crawler4j的依赖项来解析DOM树并从结果树中删除<script>标记。