Ответы пользователя по тегу Парсинг
  • Как пройтись по всем тэгам в HTML-файле и заполнить JSON в соответствии с набором правил?

    @vitaliy_balahnin
    Новичок в веб-разработке
    С Cheerio не знаком, но я так понимаю он похож на jquery.
    может на нём можно типа такого замутить
    spoiler

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>Example</title>
      
      <script
      src="https://code.jquery.com/jquery-3.5.1.min.js"
      integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
      crossorigin="anonymous"></script>
    </head>
    <body>
    
    
    <h1 class="header"><a id="_Toc446404887"></a><a id="_Toc446498856"></a><a id="_Toc473706079"></a>Тест 1</h1>
    <h2 class="date"><a id="_Toc446411230"></a><a id="_Toc446404888"></a><a id="_Toc446318335"></a><a id="_Toc446498857"></a><a id="_Toc473706080"></a>10.10.10</h2>
    <p>P1</p>
    <p>tags1</p>
    <p>here1</p>
    <a class="source"><a href="test1.html">test1.html</a></a>
    <h1 class="header"><a id="_Toc446404887"></a><a id="_Toc446498856"></a><a id="_Toc473706079"></a>Тест 2</h1>
    <h2 class="date"><a id="_Toc446411230"></a><a id="_Toc446404888"></a><a id="_Toc446318335"></a><a id="_Toc446498857"></a><a id="_Toc473706080"></a>11.11.11</h2>
    <p>P2</p>
    <p>tags2</p>
    <p>here2</p>
    <a class="source"><a href="test2.html">test2.html</a></a>
    
    <script>
     'use strict';
     var article_selector = $('.header');
     var arr = [];
     var count = 0;
     for (var item of article_selector) {
    
       var next_selector = $(item).next();
       var row = {};
            row.title = $(item).text();
    		if (next_selector.attr('class') == 'date') {
    		   row.date = next_selector.text();
    		}
    		
    		
    		  
    		  
    		
    		var href = '';
    	var loop_selector = next_selector.next();	
    	var i = 0;
    	row.body = '';
    	while (i != 1) {
    	
            if (loop_selector.attr('class') == undefined) {
    		
    		  row.body += loop_selector.text()+' ';
    		  loop_selector = loop_selector.next();
    		} else {
    		  if (loop_selector.attr('class') == 'source') {
    		    var elem = loop_selector;
    			href = elem[0]['nextSibling']['href'];
    		
    		  }
    		i = 1;
    		  break;
    		}
    		
    		
         }
    		
    	 row.href = href;	
    	
    		
    	arr.push(row);	
    	count++;
     }
     console.log(arr);
    </script>
    
    </body>
    </html>

    Ответ написан