bet*_*eth 5 json node.js web-scraping cheerio
I have to iterate through a table and create a json object containing info in this way:
var obj = {
    vaccine: "...",
    year: ...,
    country: "...",
    coverage: ...
} 
Run Code Online (Sandbox Code Playgroud)
The table is:
<table class="ts">
    <tr>
        <td class="statheadings" colspan="100%" align="center">
            <h1 class="statistics">Coverage time series for Italy  (ITA)</h1>
        </td>
    </tr>
    <tr>
        <td align="center" colspan="100%"> <font color="red">
            Last updated 06-Sep-2017 (data as of 05-Sep-2017)<br />Next overall update 2018<br /></font>
        </td>
    </tr>
    <tr>
        <td colspan="100%" >
            <hr />
        </td>
    </tr>
    <tr>
        <th colspan="4" align="left">Vacciness</th>  
        <th class="year">2016</th>  
        <th class="year">2015</th>  
        <th class="year">2014</th>  
        <th class="year">2013</th>  
        <th class="year">2012</th>  
        <th class="year">2011</th>  
        <th class="year">2010</th>  
        <th class="year">2009</th>  
        <th class="year">2008</th>  
        <th class="year">2007</th>  
        <th class="year">2006</th>  
        <th class="year">2005</th>  
        <th class="year">2004</th>  
        <th class="year">2003</th>  
        <th class="year">2002</th>  
        <th class="year">2001</th>  
        <th class="year">2000</th>  
        <th class="year">1999</th>  
        <th class="year">1998</th>  
        <th class="year">1997</th>  
        <th class="year">1996</th>  
        <th class="year">1995</th>  
        <th class="year">1994</th>  
        <th class="year">1993</th>  
        <th class="year">1992</th>  
        <th class="year">1991</th>  
        <th class="year">1990</th>  
        <th class="year">1989</th>  
        <th class="year">1988</th>  
        <th class="year">1987</th>  
        <th class="year">1986</th>  
        <th class="year">1985</th>  
        <th class="year">1984</th>  
        <th class="year">1983</th>  
        <th class="year">1982</th>
        <th class="year">1981</th>    
    </tr>
    <tr class="odd">
        <td colspan="4" align="left">
            <a href="timeseries/tscoveragedtp3.html" title="Click for full global time series for DTP3">DTP3</a>
        </td>
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">93 </td>    
        <td class="statistics_small" colspan="1">95 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">97 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">97 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">95 </td>    
        <td class="statistics_small" colspan="1">94 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">93 </td>    
        <td class="statistics_small" colspan="1">93 </td>    
        <td class="statistics_small" colspan="1">87 </td>    
        <td class="statistics_small" colspan="1">87 </td>    
        <td class="statistics_small" colspan="1">86 </td>    
        <td class="statistics_small" colspan="1">85 </td>    
        <td class="statistics_small" colspan="1">84 </td>    
        <td class="statistics_small" colspan="1">84 </td>    
        <td class="statistics_small" colspan="1">83 </td>    
        <td class="statistics_small" colspan="1">82 </td>    
        <td class="statistics_small" colspan="1">80 </td>    
        <td class="statistics_small" colspan="1">80 </td>    
        <td class="statistics_small" colspan="1">80 </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>       
    <tr class="even">
        <td colspan="4" align="left"> 
        <a href="timeseries/tscoveragehepb3.html" title="Click for full global time series for HepB3">HepB3</a>
        </td>
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        93 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        97 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        94 
        </td>    
        <td class="statistics_small" colspan="1">
        94 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        50 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>     
    <tr class="odd">
        <td colspan="4" align="left">
            <a href="timeseries/tscoveragedtp3.html" title="Click for full global time series for DTP3">DTP3</a>
        </td>
        ...
Run Code Online (Sandbox Code Playgroud)
As you can see, rows are divided in odd and even.
I took this table using Node.js, Express.js and Cheerio.
This is my code:
const cheerio = require('cheerio');
const express = require('express');
var fs = require('fs');
const request = require('request');
const app = express();
// piece of link of each country
/*var countries = {
    'Albania': 'ALB',
    'Austria': 'AUT',
    'Belgium': 'BEL',
    'Bulgaria': 'BGR',
    'Croatia': 'HRV',
    'Cyprus': 'CYP',
    'Denmark': 'DNK',
    'Estonia': 'EST',
    'Finland': 'FIN',
    'France': 'FRA',
    'Germany': 'DEU',
    'Greece': 'GRC',
    'Iceland': 'ISL',
    'Ireland': 'IRL',
    'Italy': 'ITA',
    'Latvia': 'LVA',
    'Netherlands': 'NLD',
    'Norway': 'NOR',
    'Poland': 'POL',
    'Portugal': 'PRT',
    'Romania': 'ROU',
    'Slovakia': 'SVK',
    'Slovenia': 'SVN',
    'Spain': 'ESP',
    'Sweden': 'SWE',
    'Switzerland': 'CHE',
    'United Kingdom': 'GBR'
};*/
// for test
var countries = {
    'Albania': 'ALB'
};
// create variables to create json object
var jsons = [];
var json = {vaccine: "", country: "", year: "", coverage: ""};
for(country in countries) {
    var url = 'http://apps.who.int/immunization_monitoring/globalsummary/coverages?c=' + countries[country];
    request(url, (function(country) {
        var thisCountry = country;
        return function(error, res, html) {
            if(error) {
                console.log(error);
                throw error;
            }
            // send html response to cheerio to create DOM
            $ = cheerio.load(html);
            // arrays containing all the values
            var years = [];
            var vaccines = [];
            var coverages = [];
            var i = 1;
            // scraping year values
            $('.ts .year').each(function(year) {
                var country = thisCountry.trim();
                var year = $(this).text().trim();
                years.push(year);
                json.country = country;
                json.year = year;
            });
            console.log(years, years.length);
            // scraping vaccine values
            $('.ts .odd td a').each(function(odd) {
                var vaccine = $(this).text().trim();
                vaccines.push(vaccine);
                json.vaccine = vaccine;
            });
            $('.ts .even td a').each(function(even) {
                var vaccine = $(this).text().trim();
                vaccines.push(vaccine);
                json.vaccine = vaccine;
            });
            console.log(vaccines, vaccines.length);
            // scraping coverage values (get all values)
            $('.ts .odd .statistics_small').each(function(oddCoverage) {
                var coverage = $(this).text().trim();
                coverages.push(coverage);
            });
            $('.ts .even .statistics_small').each(function(evenCoverage) {
                var coverage = $(this).text().trim();
                coverages.push(coverage);
            });
            console.log(coverages, coverages.length);
            console.log("i", i); // 1
            // scraping coverage values (geto only some values)
            $('.ts .odd:nth-child(' + i + ')').each(function(oddCoverage) {
                var coverage = $(this).text().trim();
                json.coverage = coverage;
            });
            i++;
            console.log("i", i); // 2
            jsons.push(json);
            // write jsons on file output.json
            fs.writeFile('output.json', JSON.stringify(jsons, null, 3), function(error) {
                console.log('File output.json successfully written!');
            });
            console.log("i", i); // 2
        } // end return
    })(country)); // end request
}
Run Code Online (Sandbox Code Playgroud)
The code doesn't work.
I'm able to retrieve all the years, all the vaccines and all the coverage values. But all these values are confused and mixed up.
I'm not sure how to build a json file containing all the orderd and structured values. My goal is a file like that:
[
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": 2016,
      "coverage": 99
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": 2015,
      "coverage": 100
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": 2014,
      "coverage": 100
   },
   {
    ...
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": 1981,
      "coverage": 93
   },
   {
      "vaccine": "DTP1",
      "country": "Albania",
      "year": 2016,
      "coverage": 99
   },
   {
    ...
   },
   {
      "vaccine": "DTP1",
      "country": "Albania",
      "year": 1981,
      "coverage": _
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": 2016,
      "coverage": _
   },
   {
    ...
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": 1981,
      "coverage": _
   },
   {
      "vaccine": "BCG",
      "country": "Austria",
      "year": 2016,
      "coverage": _
   },
   {
    ...
   }
]
Run Code Online (Sandbox Code Playgroud)
It have to contain 576 = 36*16 elements.
I try to create an index i to iterate through td element but it doesn't work.
Now, my output.js file is:
[
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1981",
      "coverage": ""
   }
]
Run Code Online (Sandbox Code Playgroud)
Thanks!
EDIT
My goal is costruct a json object from a table.
The table:
<table class="ts">
    <tr>
        <td class="statheadings" colspan="100%" align="center">
            <h1 class="statistics">Coverage time series for Italy  (ITA)</h1>
        </td>
    </tr>
    <tr>
        <td align="center" colspan="100%"> <font color="red">
            Last updated 06-Sep-2017 (data as of 05-Sep-2017)<br />Next overall update 2018<br /></font>
        </td>
    </tr>
    <tr>
        <td colspan="100%" >
            <hr />
        </td>
    </tr>
    <tr>
        <th colspan="4" align="left">Vacciness</th>  
        <th class="year">2016</th>  
        <th class="year">2015</th>  
        <th class="year">2014</th>  
        <th class="year">2013</th>  
        <th class="year">2012</th>  
        <th class="year">2011</th>  
        <th class="year">2010</th>  
        <th class="year">2009</th>  
        <th class="year">2008</th>  
        <th class="year">2007</th>  
        <th class="year">2006</th>  
        <th class="year">2005</th>  
        <th class="year">2004</th>  
        <th class="year">2003</th>  
        <th class="year">2002</th>  
        <th class="year">2001</th>  
        <th class="year">2000</th>  
        <th class="year">1999</th>  
        <th class="year">1998</th>  
        <th class="year">1997</th>  
        <th class="year">1996</th>  
        <th class="year">1995</th>  
        <th class="year">1994</th>  
        <th class="year">1993</th>  
        <th class="year">1992</th>  
        <th class="year">1991</th>  
        <th class="year">1990</th>  
        <th class="year">1989</th>  
        <th class="year">1988</th>  
        <th class="year">1987</th>  
        <th class="year">1986</th>  
        <th class="year">1985</th>  
        <th class="year">1984</th>  
        <th class="year">1983</th>  
        <th class="year">1982</th>
        <th class="year">1981</th>    
    </tr>
    <tr class="odd">
        <td colspan="4" align="left">
            <a href="timeseries/tscoveragedtp3.html" title="Click for full global time series for DTP3">DTP3</a>
        </td>
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">93 </td>    
        <td class="statistics_small" colspan="1">95 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">97 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">97 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">95 </td>    
        <td class="statistics_small" colspan="1">94 </td>    
        <td class="statistics_small" colspan="1">96 </td>    
        <td class="statistics_small" colspan="1">93 </td>    
        <td class="statistics_small" colspan="1">93 </td>    
        <td class="statistics_small" colspan="1">87 </td>    
        <td class="statistics_small" colspan="1">87 </td>    
        <td class="statistics_small" colspan="1">86 </td>    
        <td class="statistics_small" colspan="1">85 </td>    
        <td class="statistics_small" colspan="1">84 </td>    
        <td class="statistics_small" colspan="1">84 </td>    
        <td class="statistics_small" colspan="1">83 </td>    
        <td class="statistics_small" colspan="1">82 </td>    
        <td class="statistics_small" colspan="1">80 </td>    
        <td class="statistics_small" colspan="1">80 </td>    
        <td class="statistics_small" colspan="1">80 </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>    
        <td class="statistics_small" colspan="1">_ </td>       
    <tr class="even">
        <td colspan="4" align="left"> 
        <a href="timeseries/tscoveragehepb3.html" title="Click for full global time series for HepB3">HepB3</a>
        </td>
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        93 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        97 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        96 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        94 
        </td>    
        <td class="statistics_small" colspan="1">
        94 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        95 
        </td>    
        <td class="statistics_small" colspan="1">
        50 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>    
        <td class="statistics_small" colspan="1">
        _ 
        </td>     
    <tr class="odd">
        <td colspan="4" align="left">
            <a href="timeseries/tscoveragedtp3.html" title="Click for full global time series for DTP3">DTP3</a>
        </td>
        ...
Run Code Online (Sandbox Code Playgroud)
我想要的json对象:
[
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": 2016,
      "coverage": 99
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": 2015,
      "coverage": 100
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": 2014,
      "coverage": 100
   },
   {
    ...
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": 1981,
      "coverage": 93
   },
   {
      "vaccine": "DTP1",
      "country": "Albania",
      "year": 2016,
      "coverage": 99
   },
   {
    ...
   },
   {
      "vaccine": "DTP1",
      "country": "Albania",
      "year": 1981,
      "coverage": _
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": 2016,
      "coverage": _
   },
   {
    ...
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": 1981,
      "coverage": _
   },
   {
      "vaccine": "BCG",
      "country": "Austria",
      "year": 2016,
      "coverage": _
   },
   {
    ...
   }
]
Run Code Online (Sandbox Code Playgroud)
    我简化了你的解析代码.它在我的机器上工作正常.代码的问题在于,当您将所有值推送到数组中时,您没有使用这些值来构建所需的对象.我的解析策略:像你一样抓取三个独立数组中的所有数据,然后迭代这些数组以生成所需的对象结构.
我在您所在国家/地区对象的前两个国家/地区进行了本地测试,并且成功了.
这是我在for(country in countries)循环中更改的代码:
var years = [];
var vaccines = [];
var coverages = [];
// get years
$('.ts .year').each(function() {
    years.push($(this).text().trim());
});
// get vaccines
$('.ts .odd td a, .ts .even td a').each(function() {
    vaccines.push($(this).text().trim());
});
// get coverages
$('.ts .odd .statistics_small, .ts .even .statistics_small').each(function() {
    coverages.push($(this).text().trim());
});
const numYears = years.length;
const numVaccines = vaccines.length;
for (var vaccineIdx=0; vaccineIdx<numVaccines; vaccineIdx++) {
  // iterate over each vaccine
  for (var yearIdx=0; yearIdx<numYears; yearIdx++) {
    //iterate over each year for vaccine
    let obj = {
      vaccine: vaccines[vaccineIdx],
      country: country,
      year: years[yearIdx],
      coverage: coverages[vaccineIdx*numYears+yearIdx]
    }
    jsons.push(obj);
  } 
}
// write jsons on file output.json
fs.writeFile('output.json', JSON.stringify(jsons, null, 3), function(error) {
    if (!error) { console.log('File output.json successfully written with',country,'data!'); }
    else {
      console.log(error, 'occurred while trying to write',country,'data to output.json');
    }
});
Run Code Online (Sandbox Code Playgroud)
阿尔巴尼亚的第一个和最后一个(BCG和TT2 +疫苗)的结果对象(由于StackOverflow限制,数组中的中间值被省略):
[
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2016",
      "coverage": "99"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2015",
      "coverage": "100"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2014",
      "coverage": "100"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2013",
      "coverage": "100"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2012",
      "coverage": "96"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2011",
      "coverage": "97"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2010",
      "coverage": "100"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2009",
      "coverage": "97"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2008",
      "coverage": "100"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2007",
      "coverage": "98"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2006",
      "coverage": "97"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2005",
      "coverage": "98"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2004",
      "coverage": "97"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2003",
      "coverage": "95"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2002",
      "coverage": "94"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2001",
      "coverage": "93"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "2000",
      "coverage": "93"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1999",
      "coverage": "93"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1998",
      "coverage": "87"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1997",
      "coverage": "94"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1996",
      "coverage": "94"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1995",
      "coverage": "97"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1994",
      "coverage": "87"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1993",
      "coverage": "82"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1992",
      "coverage": "81"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1991",
      "coverage": "80"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1990",
      "coverage": "94"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1989",
      "coverage": "94"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1988",
      "coverage": "92"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1987",
      "coverage": "92"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1986",
      "coverage": "92"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1985",
      "coverage": "92"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1984",
      "coverage": "90"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1983",
      "coverage": "90"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1982",
      "coverage": "_"
   },
   {
      "vaccine": "BCG",
      "country": "Albania",
      "year": "1981",
      "coverage": "93"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2016",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2015",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2014",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2013",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2012",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2011",
      "coverage": "75"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2010",
      "coverage": "85"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2009",
      "coverage": "80"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2008",
      "coverage": "83"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2007",
      "coverage": "86"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2006",
      "coverage": "86"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2005",
      "coverage": "86"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2004",
      "coverage": "85"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2003",
      "coverage": "73"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2002",
      "coverage": "71"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2001",
      "coverage": "80"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "2000",
      "coverage": "89"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1999",
      "coverage": "77"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1998",
      "coverage": "65"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1997",
      "coverage": "99"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1996",
      "coverage": "98"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1995",
      "coverage": "97"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1994",
      "coverage": "100"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1993",
      "coverage": "96"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1992",
      "coverage": "94"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1991",
      "coverage": "78"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1990",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1989",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1988",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1987",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1986",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1985",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1984",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1983",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1982",
      "coverage": "_"
   },
   {
      "vaccine": "TT2+",
      "country": "Albania",
      "year": "1981",
      "coverage": "_"
   }
]
Run Code Online (Sandbox Code Playgroud)
这个解析代码有点脆弱:如果您要抓取的网站更改其类值或在不同国家/地区的页面上具有不同的结构,则数据可能无效.根据项目的范围和意图,这可能是也可能不是问题.只是需要考虑的事情.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           3183 次  |  
        
|   最近记录:  |