提问人:soro 提问时间:6/20/2022 最后编辑:soro 更新时间:6/20/2022 访问量:57
DOM HTML 使用 javascript 提取信息
DOM HTML Extract infromation with javascript
问:
嗨,我正在尝试提取此 HTML 的信息。但是当它到达描述时,我遇到了麻烦,这是我的代码
let divCardDes = document.createElement('div');
divCardDes.className = 'des';
let pDescription = document.createElement('p');
let resultDescription = xmlDoc.evaluate('.//div/div[@class="short"]', node, null, XPathResult.FIRST_ORDERED_NODE_TYPE);
pDescription.innerHTML = '<strong>Descripcion: </strong>' + resultDescription.singleNodeValue.p;
divCardDes.appendChild(pDescription);
console.log(resultDescription)
和 html :
<div class="row d-block align-end" data-v-1a4e2f4c="">
<div index="0" class="row" data-v-744a5232="" data-v-1a4e2f4c="">
<div class="col-lg-2 col-3" data-v-744a5232=""><a
href="/libro-el-peligro-de-estar-cuerda/9788432240645/12789134" title="EL PELIGRO DE ESTAR CUERDA"
class="py-2" data-v-744a5232=""><img title="el peligro de estar cuerda-9788432240645"
alt="el peligro de estar cuerda-9788432240645"
src="https://imagessl5.casadellibro.com/a/l/t1/45/9788432240645.jpg"
data-src="https://imagessl5.casadellibro.com/a/l/t1/45/9788432240645.jpg" width="" height=""
class="show-shadow cdl-img active" style="max-height:undefinedpx;max-width:undefinedpx;"
data-v-744a5232=""></a></div>
<div class="col-lg-10 col-9" data-v-744a5232="">
<div class="row row--dense" data-v-744a5232="">
<div class="col col-11" data-v-744a5232=""><a
href="/libro-el-peligro-de-estar-cuerda/9788432240645/12789134"
title="EL PELIGRO DE ESTAR CUERDA" class="title" data-v-744a5232="">
EL PELIGRO DE ESTAR CUERDA
</a></div>
<div class="hidden-md-and-down col col-1" data-v-744a5232=""><span aria-hidden="true"
class="v-icon notranslate theme--light accent--text" data-v-744a5232=""><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-hidden="true"
class="v-icon__svg">
<path
d="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z">
</path>
</svg></span> <span class="text-subtitle-1" data-v-744a5232="">7</span></div>
<div class="col col-12" data-v-744a5232=""><a href="/libros-ebooks/rosa-montero/9812"
class="author text-underline-over" data-v-744a5232="">
Rosa Montero
</a></div>
<div class="col col-12" data-v-744a5232="">
<div data-v-ce307848="" data-v-744a5232="">
<div class="short" style="-webkit-line-clamp:5;" data-v-ce307848="">
Una apasionada defensa del valor de ser diferente.Partiendo de su experiencia personal y de
la lectura de numerosos libros de psicología, neurociencia, literatura y memorias de grandes
autores de distintas disciplinas creativas, Rosa Montero nos ofrece un estudio apasionante
sobre los vinculos entre la creatividad y la inestabilidad mental. Y lo hace compartiendo
con el lector numerosas curiosidades asombrosas sobre como funciona nuestro cerebro al
crear, desmenuzando todos los aspectos que influyen en la creatividad, y montandolos ante
los ojos del lector mientras escribe, como un detective dispuesto a resolver las piezas
dispersas de una investigacion.Ensayo y ficcion se dan la mano en esta exploracion sobre los
vinculos entre la creatividad y la locura, y asi el lector asistira en directo al mismo
proceso de la creacion, descubrira la teoria de "la tormenta perfecta", esto es, que en el
estallido creativo confluyen una serie de factores irrepetibles, quimicos y situacionales, y
compartira la experiencia personal de como Rosa Montero vivio en directo, y durante años,
muy cerca de la locura.El peligro de estar cuerda habla de que "las hadas" nos dan un don, y
nos hacen pagar un precio por el; los normales no pagamos ese duro precio, pero corremos el
riesgo de morir de tedio, en lugar de morir de amor. Como en todo, la clave esta en el
equilibrio entre el porcentaje de desapego y el de sentimiento, en lograr cierta armonia
entre el yo que sufre y el yo que controla, dice la propia autora.
</div>
<div class="action" style="" data-v-ce307848=""><a
class="success--text text-body-2 accent2--text text-underline-hover" data-v-ce307848=""
data-v-744a5232="">
Ver más
</a></div>
</div>
</div>
我想在代码的最后一部分获取文本,div 说 class short。我认为 xpath 是错误的,但我不知道为什么。sombody能帮我吗?
答:
0赞
Martin Honnen
6/20/2022
#1
您还没有提供完整但最小的可执行示例,该路径对我有用,假设您在 HTML DOM 文档中:div
let divCardDes = document.createElement('div');
divCardDes.className = 'des';
let pDescription = document.createElement('p');
let resultDescription = document.evaluate('.//div/div[@class="short"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE);
pDescription.innerHTML = '<strong>Descripcion: </strong>' + resultDescription.singleNodeValue.textContent;
divCardDes.appendChild(pDescription);
console.log(resultDescription);
console.log(divCardDes);
document.body.appendChild(divCardDes);
<div class="col col-12" data-v-744a5232="">
<div data-v-ce307848="" data-v-744a5232="">
<div class="short" style="-webkit-line-clamp:5;" data-v-ce307848="">
Una apasionada defensa del valor de ser diferente.Partiendo de su experiencia personal y de
la lectura de numerosos libros de psicología, neurociencia, literatura y memorias de grandes
autores de distintas disciplinas creativas, Rosa Montero nos ofrece un estudio apasionante
sobre los vinculos entre la creatividad y la inestabilidad mental. Y lo hace compartiendo
con el lector numerosas curiosidades asombrosas sobre como funciona nuestro cerebro al.....
</div>
</div>
</div>
对于更复杂的输入示例,路径还会选择一个元素,当然您可以使用以下命令获取文本:.textContent
const html = `<div class="row d-block align-end" data-v-1a4e2f4c="">
<div index="0" class="row" data-v-744a5232="" data-v-1a4e2f4c="">
<div class="col-lg-2 col-3" data-v-744a5232=""><a
href="/libro-el-peligro-de-estar-cuerda/9788432240645/12789134" title="EL PELIGRO DE ESTAR CUERDA"
class="py-2" data-v-744a5232=""><img title="el peligro de estar cuerda-9788432240645"
alt="el peligro de estar cuerda-9788432240645"
src="https://imagessl5.casadellibro.com/a/l/t1/45/9788432240645.jpg"
data-src="https://imagessl5.casadellibro.com/a/l/t1/45/9788432240645.jpg" width="" height=""
class="show-shadow cdl-img active" style="max-height:undefinedpx;max-width:undefinedpx;"
data-v-744a5232=""></a></div>
<div class="col-lg-10 col-9" data-v-744a5232="">
<div class="row row--dense" data-v-744a5232="">
<div class="col col-11" data-v-744a5232=""><a
href="/libro-el-peligro-de-estar-cuerda/9788432240645/12789134"
title="EL PELIGRO DE ESTAR CUERDA" class="title" data-v-744a5232="">
EL PELIGRO DE ESTAR CUERDA
</a></div>
<div class="hidden-md-and-down col col-1" data-v-744a5232=""><span aria-hidden="true"
class="v-icon notranslate theme--light accent--text" data-v-744a5232=""><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-hidden="true"
class="v-icon__svg">
<path
d="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z">
</path>
</svg></span> <span class="text-subtitle-1" data-v-744a5232="">7</span></div>
<div class="col col-12" data-v-744a5232=""><a href="/libros-ebooks/rosa-montero/9812"
class="author text-underline-over" data-v-744a5232="">
Rosa Montero
</a></div>
<div class="col col-12" data-v-744a5232="">
<div data-v-ce307848="" data-v-744a5232="">
<div class="short" style="-webkit-line-clamp:5;" data-v-ce307848="">
Una apasionada defensa del valor de ser diferente.Partiendo de su experiencia personal y de
la lectura de numerosos libros de psicología, neurociencia, literatura y memorias de grandes
autores de distintas disciplinas creativas, Rosa Montero nos ofrece un estudio apasionante
sobre los vinculos entre la creatividad y la inestabilidad mental. Y lo hace compartiendo
con el lector numerosas curiosidades asombrosas sobre como funciona nuestro cerebro al
crear, desmenuzando todos los aspectos que influyen en la creatividad, y montandolos ante
los ojos del lector mientras escribe, como un detective dispuesto a resolver las piezas
dispersas de una investigacion.Ensayo y ficcion se dan la mano en esta exploracion sobre los
vinculos entre la creatividad y la locura, y asi el lector asistira en directo al mismo
proceso de la creacion, descubrira la teoria de "la tormenta perfecta", esto es, que en el
estallido creativo confluyen una serie de factores irrepetibles, quimicos y situacionales, y
compartira la experiencia personal de como Rosa Montero vivio en directo, y durante años,
muy cerca de la locura.El peligro de estar cuerda habla de que "las hadas" nos dan un don, y
nos hacen pagar un precio por el; los normales no pagamos ese duro precio, pero corremos el
riesgo de morir de tedio, en lugar de morir de amor. Como en todo, la clave esta en el
equilibrio entre el porcentaje de desapego y el de sentimiento, en lograr cierta armonia
entre el yo que sufre y el yo que controla, dice la propia autora.
</div>
<div class="action" style="" data-v-ce307848=""><a
class="success--text text-body-2 accent2--text text-underline-hover" data-v-ce307848=""
data-v-744a5232="">
Ver más
</a></div>
</div>
</div>`;
const htmlDoc = new DOMParser().parseFromString(html, 'text/html');
let divCardDes = document.createElement('div');
divCardDes.className = 'des';
let pDescription = document.createElement('p');
let resultDescription = htmlDoc.evaluate('.//div/div[@class="short"]', htmlDoc, null, XPathResult.FIRST_ORDERED_NODE_TYPE);
pDescription.innerHTML = '<strong>Descripcion: </strong>' + resultDescription.singleNodeValue.textContent;
divCardDes.appendChild(pDescription);
console.log(divCardDes);
document.body.appendChild(divCardDes);
<div class="row d-block align-end" data-v-1a4e2f4c="">
<div index="0" class="row" data-v-744a5232="" data-v-1a4e2f4c="">
<div class="col-lg-2 col-3" data-v-744a5232=""><a
href="/libro-el-peligro-de-estar-cuerda/9788432240645/12789134" title="EL PELIGRO DE ESTAR CUERDA"
class="py-2" data-v-744a5232=""><img title="el peligro de estar cuerda-9788432240645"
alt="el peligro de estar cuerda-9788432240645"
src="https://imagessl5.casadellibro.com/a/l/t1/45/9788432240645.jpg"
data-src="https://imagessl5.casadellibro.com/a/l/t1/45/9788432240645.jpg" width="" height=""
class="show-shadow cdl-img active" style="max-height:undefinedpx;max-width:undefinedpx;"
data-v-744a5232=""></a></div>
<div class="col-lg-10 col-9" data-v-744a5232="">
<div class="row row--dense" data-v-744a5232="">
<div class="col col-11" data-v-744a5232=""><a
href="/libro-el-peligro-de-estar-cuerda/9788432240645/12789134"
title="EL PELIGRO DE ESTAR CUERDA" class="title" data-v-744a5232="">
EL PELIGRO DE ESTAR CUERDA
</a></div>
<div class="hidden-md-and-down col col-1" data-v-744a5232=""><span aria-hidden="true"
class="v-icon notranslate theme--light accent--text" data-v-744a5232=""><svg
xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" role="img" aria-hidden="true"
class="v-icon__svg">
<path
d="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z">
</path>
</svg></span> <span class="text-subtitle-1" data-v-744a5232="">7</span></div>
<div class="col col-12" data-v-744a5232=""><a href="/libros-ebooks/rosa-montero/9812"
class="author text-underline-over" data-v-744a5232="">
Rosa Montero
</a></div>
<div class="col col-12" data-v-744a5232="">
<div data-v-ce307848="" data-v-744a5232="">
<div class="short" style="-webkit-line-clamp:5;" data-v-ce307848="">
Una apasionada defensa del valor de ser diferente.Partiendo de su experiencia personal y de
la lectura de numerosos libros de psicología, neurociencia, literatura y memorias de grandes
autores de distintas disciplinas creativas, Rosa Montero nos ofrece un estudio apasionante
sobre los vinculos entre la creatividad y la inestabilidad mental. Y lo hace compartiendo
con el lector numerosas curiosidades asombrosas sobre como funciona nuestro cerebro al
crear, desmenuzando todos los aspectos que influyen en la creatividad, y montandolos ante
los ojos del lector mientras escribe, como un detective dispuesto a resolver las piezas
dispersas de una investigacion.Ensayo y ficcion se dan la mano en esta exploracion sobre los
vinculos entre la creatividad y la locura, y asi el lector asistira en directo al mismo
proceso de la creacion, descubrira la teoria de "la tormenta perfecta", esto es, que en el
estallido creativo confluyen una serie de factores irrepetibles, quimicos y situacionales, y
compartira la experiencia personal de como Rosa Montero vivio en directo, y durante años,
muy cerca de la locura.El peligro de estar cuerda habla de que "las hadas" nos dan un don, y
nos hacen pagar un precio por el; los normales no pagamos ese duro precio, pero corremos el
riesgo de morir de tedio, en lugar de morir de amor. Como en todo, la clave esta en el
equilibrio entre el porcentaje de desapego y el de sentimiento, en lograr cierta armonia
entre el yo que sufre y el yo que controla, dice la propia autora.
</div>
<div class="action" style="" data-v-ce307848=""><a
class="success--text text-body-2 accent2--text text-underline-hover" data-v-ce307848=""
data-v-744a5232="">
Ver más
</a></div>
</div>
</div>
评论
0赞
soro
6/20/2022
我现在添加了完整的html,谢谢回答
0赞
Martin Honnen
6/20/2022
@soro,我的两个示例都选择了一个元素并输出其,第一个示例使用嵌入在主文档中的原始问题的 HTML 代码段,第二个示例将使用 DOMParser 编辑中的较大代码片段解析为 text/html,然后应用问题中的 XPath。textContent
上一个:XPath 选择多个子值
评论
resultDescription.singleNodeValue.p
resultDescription.singleNodeValue.textContent