Apabila merangkak tapak web,
Saya merasakan h2 dan h3 mempunyai struktur yang sama Mengapa h2:first-child boleh mendapatkan data, tetapi h3 tidak boleh.
Keputusan akhir h2_1 dan h2_2 adalah sama, tiada masalah.
h3_1 ok, h3_2 kosong, kenapa ni?
Kodnya adalah seperti berikut,
const jsdom = require('jsdom');
const jquery = require('jquery');
jsdom.env('https://www.osram.com/os/news-and-events/spotlights/index.jsp', [], {
defaultEncoding: 'utf-8'
}, function(err, window) {
if(err) {
console.error('error get news url from page [%s]');
return;
}
let $ = jquery(window);
let el = $('p.col-xs-6.col-sm-7.colalign:first');
let h2_1 = $(el).find('h2.font-headline-teaser').text();
console.log('h2_1=' + h2_1);
let h2_2 = $(el).find('h2.font-headline-teaser:first-child').text();
console.log('h2_2=' + h2_2);
let h3_1 = $(el).find('h3.font-sub-headline').text();
console.log('h3_1=' + h3_1);
let h3_2 = $(el).find('h3.font-sub-headline:first-child').text();
console.log('h3_2=' + h3_2);
window.close();
});
Pemilih xxx:anak pertama bermaksud apabila elemen anak pertama unsur induk xxx ialah xxx, untuk memilih xxx, kedua-dua syarat ini perlu dipenuhi pada masa yang sama.
bukan unsur anak pertama unsur induk xxx, dan bukan juga xxx pertama antara unsur anak unsur induk xxx
Elemen anak pertama bagi elemen indukh2.font-headline-teaser ialah h2.font-headline-teaser, jadi ia boleh dipilih
Elemen anak pertama bagi elemen induk h3.font-sub-headline bukan h3.font-sub-headline, jadi ia kosong