2016-09-26 16 views
6

मैं अपने हाथ और webscraping कोशिश करना चाहता हूँ। मैंने देखा है कि Anglesharp .NET पर्यावरण के लिए बहुत अच्छा है। मैं एक yelp साइट से सभी विवरणों और रेटिंग की एक सूची प्राप्त करने की कोशिश कर रहा हूं और मुझे कोई त्रुटि या कोई परिणाम नहीं मिला है।Anglesharp - एक Yelp साइट से रेटिंग और समीक्षा कैसे प्राप्त करें?

<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> 

यहाँ मेरी क्वेरी है:: यहाँ एचटीएमएल की तरह ("https://www.yelp.ca/biz/walmart-toronto-12" में अधिक विवरण) लग रहा है क्या का एक सबसेट है

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

मैंने HTMLhttps://www.yelp.ca/biz/walmart-toronto-12 का स्रोत चेक किया। जैसा कि मैंने उम्मीद की थी कि उपयोगकर्ता समीक्षा JSON प्रारूप में है। इस परिदृश्य में आपको AngleSharp का उपयोग नहीं करना चाहिए।

नीचे दी गई तस्वीर HTML स्रोत से निकाली गई है।

enter image description here

यह एक JSON है और आप Newtonsoft.Json साथ यह deserialize कर सकते हैं:

enter image description here

और यहाँ JSON की पार्स संस्करण है। बस JSON निकालें और इसे पढ़ने के लिए आपको क्या चाहिए।

संबंधित मुद्दे