Anglesharp - 如何从 Yelp 网站获得评分和评论?

Posted

技术标签:

【中文标题】Anglesharp - 如何从 Yelp 网站获得评分和评论?【英文标题】:Anglesharp - How to get ratings & reviews from a Yelp site? 【发布时间】:2017-02-04 02:04:16 【问题描述】:

我想试试我的手和网络爬虫。我注意到 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  class="offscreen"  src="//s3-media4.fl.yelpcdn.com/assets/srv0/yelp_styleguide/c2252a4cd43e/assets/img/stars/stars_map.png" >
    </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  class="offscreen"  src="//s3-media4.fl.yelpcdn.com/assets/srv0/yelp_styleguide/c2252a4cd43e/assets/img/stars/stars_map.png" >
    </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();

如何获取用户评论(描述)和评分列表?

【问题讨论】:

【参考方案1】:

我检查了HTML 的https://www.yelp.ca/biz/walmart-toronto-12 的来源。正如我所料,用户评论采用JSON 格式。在这种情况下,您不应使用 AngleSharp

以下照片摘自HTML来源。

这是JSON的解析版本:

这是一个JSON,您可以使用Newtonsoft.Json 对其进行反序列化。只需提取 JSON 并从中读取您需要的内容。

【讨论】:

以上是关于Anglesharp - 如何从 Yelp 网站获得评分和评论?的主要内容,如果未能解决你的问题,请参考以下文章

从Mesos转向Kubernetes,美国最大点评网站Yelp,开源Clusterman集群系统

如果已安装,则将用户从 iOS 浏览器重定向到 App,如果未安装,则将用户重定向到 App Store - 像 Yelp

如何在 AngleSharp 项目对象中获取链接的标题?

容器,云和代码:Yelp如何使用Mesos和Docker构建混合云?

如何获取用户输入并将其存储以稍后在 swift Xcode 中搜索网站

AngleSharp一些示例