Estoy usando el módulo de rayos X para raspar datos como el siguiente código HTML. ¿Cómo raspar una lista de definiciones como esta con rayos X?
<div class="content"> <h1>Title</h1> <div class="productDetails"> <dl> <dt>1</dt> <dd>A</dd> <dt>2</dt> <dd>B</dd> <dt>3</dt> <dd>C</dd> </dl> </div> </div>Me gustaría obtener el siguiente resultado:
[ { "productTitle": "Title", "productDetails": [ { "attrName": "1", "attrDesc": "A" }, { "attrName": "2", "attrDesc": "B" }, { "attrName": "3", "attrDesc": "C" } ] } ]Aquí está el código que usé para raspar el contenido:
x(url, '.content', [ { productTitle: 'h1', productDetails1: x('div.productDetails', [{attrName: ['dl dt'], attrDesc: ['dl dd | remove_whitespace']}]), productDetails2: x('div.productDetails dl', ['dt', 'dd']), } ])Pero obtengo este resultado:
[ { "productTitle": "Title", "productDetails_1": [ { "attrName": [ "1", "2", "3" ], "attrDesc": [ "A", "B", "C" ] } ], "productDetails_2": [ "1", "2", "3" ] } ]¿Cómo obtener los datos en la estructura que describí anteriormente?