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
Post a Comment