javascript - Node Jquery Scraping Issue -


i trying run simple scrape on webpage, issue running can't seem bee selecting html elements scraper correctly. thought grabbing attributes correctly <li>, i'm getting undefined value each of object properties.

i'm looking grab data-name, data-address , data-url values.

scrape.js

var request = require('request'); var cheerio = require('cheerio');  request('http://personalsite.com', function (error, response, html) {   if (!error && response.statuscode == 200) {     var $ = cheerio.load(html);      $('li').each(function(i, element){          var li = $(this).contents();           var name = li.attr('name');         var address = li.attr('address');         var url = li.attr('url');           var metadata = {             name : name,             address : address,             url : url         };         console.log(metadata);     });   } }); 

html:

<li id="v1065" data-name="jerry's food" data-address="5120 west 43rd street"  data-url="http://www.testsite1.com/" data-category="1"><a href="#" class="list-digital">                                     <span class="venue-name">jerry's food</span><br />                                     <span class="venue-address">5120 west 43rd street</span>                                      </a>                                 </li>                                                            <li id="v249" data-name="accel partners" data-address="13482 seventh avenue" data-url="http://www.testsite2.com" data-category="3"><a href="#" class="list-digital">                                     <span class="venue-name">mike's pizza</span><br />                                     <span class="venue-address">13482 seventh avenue</span>                                                                  </a>                                 </li>                            

with .attr() method should use full attribute names

var name = li.attr('data-name'); var address = li.attr('data-address'); var url = li.attr('data-url'); 

or may use

var name = li.data('name'); var address = li.data('address'); var url = li.data('url'); 

Comments

Popular posts from this blog

php - Submit Form Data without Reloading page -

linux - Rails running on virtual machine in Windows -