我想尝试我的手和网页抓取。我注意到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'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();
}
如何获取用户评论(说明)和评分的列表?
答案 0 :(得分:0)
我查看了https://www.yelp.ca/biz/walmart-toronto-12的HTML
来源。正如我所料,用户评论采用JSON
格式。在这种情况下,您不应该使用AngleSharp
。
以下照片摘自HTML
来源。
这是JSON
的解析版本:
它是JSON
,您可以使用Newtonsoft.Json
对其进行反序列化。只需提取JSON
并从中读取您需要的内容。