Я создал сканер веб-сайтов для сайта сравнения цен на Java и хотел бы переопределить его в C #.Я использовал Jsoup в Java, и HtmlAgilityPack (HAP) является хорошим аналогом для .NET.После сканирования примера продукта этого сайта я заметил, что HAP возвращает пустые HTML-узлы.Они не являются частью исходного HTML, когда я просматриваю этот сайт.Узел содержит только знаки форматирования, такие как "\n\t\t\t\t"
.Jsoup не показывает такое поведение, поэтому мне интересно, что там делает HAP.Небольшой пример кода, как я получаю свой узел:
using Fizzler.Systems.HtmlAgilityPack; // Without that I can't retrieve nodes
// by searching for a certain class
[...]
var client = new WebClient()
{
Encoding = Encoding.UTF8
};
var doc = new HtmlDocument();
var html = client.DownloadString("https://www.idealo.de/preisvergleich/OffersOfProduct/5473234);
doc.LoadHtml(html);
var root = doc.DocumentNode;
var data = root.QuerySelector(".pageContent-wrapper").FirstChild;
Этот код возвращает пустой узел с "\n\t\t\t\t"
в качестве содержимого, тогда как он должен возвращать узел сценария с содержимым javascript.
Критическоеhtml part:
<main class="pageContent-wrapper">
<!-- Here is nothing!-->
<script type="application/ld+json">{...json...}</script>
Почему <script>
не прямой дочерний элемент, а какой-то пустой узел?