如何做出选择?

时间:2015-01-05 18:38:33

标签: python xpath lxml

请帮助做出选择。在html页面中间的某个地方有以下代码:

<table align="center" cellspacing="0" cellpadding="0" border="0" id="single-stone"></table>
<table width="100%"></table>
<br>
<div style="padding:0px 10px; text-align:left;
margin-top:-20px;
">
    <br>
    <div>
        <strong>Гранит Мансуровский     </strong> продается в готовых изделиях, а также слэбах.
        Сейчас <strong>Мансуровский</strong> есть в наличии на складе
    </div>
    <br>

    <p></p><h2>Название</h2>Мансуровский.<p></p><p></p><h2>Цвет</h2>Однородный серо-зеленый цвет с редкими темно-серыми или черными включениями (жилы и пятна), часто предлагают как белый гранит, т.к. он является самым светлым из гранитов РФиСНГ.<p></p><p></p><h2>Месторождение</h2>Урал<p></p><p></p><h2>Зернистость/Структура</h2>Мелкозернистый,вструктуре присутствует магний.<p></p><p></p><h2>Особенности</h2><!--Принеправильноммо нтажеилиприконтактесводойначинаетсяестественнаяреакция- ржавление.Соблюдаявсеусловиямонтажа,ипользуясьуслугамипрофессионалов,можноизбежатьнежелательнойкоррозии.--> Один из самых популярных камней в России,его любят за однородность цвета,доступность и в наличии, и в цене.<p></p><p> </p><h2>Сфера применения</h2>Широко используется в дорожном строительстве(бордюры,брусчатка),для мощения площадей,набережных,метро. <p></p><p></p><h2>Условия доставки/Сроки</h2>Всегда есть в наличии в необработанном и термообработанном виде, минимальные сроки на любые изделия из данного камня.<p></p><h2>Физико-механические характеристики гранита Мансуровский</h2><table width="50%" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td></td></tr><tr><td>объемный вес,кг/м3</td><td>2710</td></tr><tr><td>водопоглощение,%</td><td>0,48</td></tr><tr><td>класс радиоактивности</td><td>1 класс</td></tr><tr><td>истираемость,г/см2</td><td>0,40</td></tr><tr><td>морозостойкость,циклов</td><td>100</td></tr><tr><td>предел прочности при сжатии,кг/см2(МПа)</td><td>169</td></tr></tbody></table>
</div>

你需要得到文字:

<strong>Гранит Мансуровский     </strong> продается в готовых изделиях, а также слэбах.
Сейчас <strong>Мансуровский</strong> есть в наличии на складе

虽然强标签不能。

这是我失败的尝试:

    description = doc.xpath('//table[@id="single-stone"]/following-sibling::div/div/@content')
    print(description)

1 个答案:

答案 0 :(得分:2)

如果您正在寻找仅限XPath的解决方案,可以使用div//text()代码中挑选所有文字:

import lxml.html as LH
doc = LH.parse('data', parser=LH.HTMLParser(encoding='utf-8'))
for elt in doc.xpath(
    '//table[@id="single-stone"]/following-sibling::div/div//text()'):
    print(elt)

产量

Гранит Мансуровский     
 продается в готовых изделиях, а также слэбах.
        Сейчас 
Мансуровский
 есть в наличии на складе

或者,您可以调用text_content元素的div方法来获取所有内容 文字:

for elt in doc.xpath('//table[@id="single-stone"]/following-sibling::div/div'):
    print(elt.text_content())

产量

        Гранит Мансуровский      продается в готовых изделиях, а также слэбах.
        Сейчас Мансуровский есть в наличии на складе