Anglesharp - Как получить оценки и отзывы с сайта Yelp?

Хочу попробовать свои силы и вебскрейпинг. Я заметил, что Anglesharp очень хорош для среды .Net. Я пытаюсь получить список всех описаний и оценок с сайта yelp, и я не получаю никаких ошибок или каких-либо результатов. Вот часть того, как выглядит html (более подробно в "https://www.yelp.ca/biz/walmart-toronto-12"):

<div class="rating-very-large">
    <i class="star-img stars_2" title="2.0 star rating">
        <img alt="2.0 star rating" class="offscreen" height="303" src="//s3-media4.fl.yelpcdn.com/assets/srv0/yelp_styleguide/c2252a4cd43e/assets/img/stars/stars_map.png" width="84">
    </i>
        <meta itemprop="ratingValue" content="2.0">
</div>
<p itemprop="description" lang="en">This Walmart still terrifies me<br><br>Baby things can be found on the back right of the lower level. Godspeed.</p> 

<div class="rating-very-large">
    <i class="star-img stars_1" title="1.0 star rating">
        <img alt="1.0 star rating" class="offscreen" height="303" src="//s3-media4.fl.yelpcdn.com/assets/srv0/yelp_styleguide/c2252a4cd43e/assets/img/stars/stars_map.png" width="84">
    </i>
        <meta itemprop="ratingValue" content="1.0">
</div>
<p itemprop="description" lang="en">Wow I don&#39;t even know where to begin, </p> 

Вот мой запрос:

var config = var config = new Configuration().WithJavaScript().WithCss();
var parser = new HtmlParser(config);
var document = await BrowsingContext.New(config).OpenAsync("https://www.yelp.ca/biz/walmart-toronto-12");

//Do something with LINQ
var descriptionListItemsLinq = document.All.Where(m => m.LocalName == "p" && m.Id.Contains("description"));
foreach (var element in descriptionListItemsLinq)
{
    element.Text().Dump();
}

Как получить список отзывов (описаний) и рейтингов пользователей?


person inquisitive_one    schedule 26.09.2016    source источник


Ответы (1)


Я проверил HTML источник https://www.yelp.ca/biz/walmart-toronto -12. Как я и ожидал, отзывы пользователей представлены в формате JSON. Вы не должны использовать AngleSharp в этом сценарии.

Фото ниже взято из источника HTML.

введите здесь описание изображения

а вот проанализированная версия JSON:

введите здесь описание изображения

Это JSON, и вы можете десериализовать его с помощью Newtonsoft.Json. Просто извлеките JSON и прочтите из него то, что вам нужно.

person Ali Bahrami    schedule 28.11.2016