我正在使用HTMLXPathSelector来解析HTML内容。目标网站有一个随机的HTML标签。例如:它的格式可能是:
<div class="doctor_ans">
<h3>Title</h3>
<p style="text-align: justify;">
<span style="font-size: 12px;">
<span style="font-family: arial,helvetica,sans-serif;">
<font color="#000000">I would like to get contain here.</font>
</span>
</span>
</p>
</div>
或
<div class="doctor_ans">
<h3>Title</h3>
<p style="text-align: justify;">
<span style="font-size: 12px;">
<span style="font-family: arial,helvetica,sans-serif;">
I would like to get contain here.>
</span>
</span>
</p>
</div>
或
<div class="doctor_ans">
<h3>Title</h3>
<p>
<span style="font-size: 12px;">
<span style="font-family: arial,helvetica,sans-serif;">
<font color="#000000">I would like to get contain here.</font>
</span>
</span>
</p>
</div>
或
<div class="doctor_ans">
<h3>Title</h3>
<p>
<span style="font-size: 12px;">
I would like to get contain here.
</span>
</p>
</div>
等等。
请告诉我如何解析这些内容。 HTML标记随机出现。所以,我需要一个方法来获取子元素以找到最终元素。
答案 0 :(得分:1)
hxs = HtmlXPathSelector(response)
hxs.select('div[@class="doctor_ans"]/p[1]//text()').extract()
将为您提供doctor_ans
div第一段中每个单独文本的列表。
答案 1 :(得分:0)
我有使用Selenium的经验,但xpath部分应该相同。使用xpath ='。// span'选择子元素,然后获取该元素的.text。如果子元素为空,则丢弃,转到下一个元素。