这是html源代码
<div class="text"><a name="dst100030"></a><pre id="p73" class="P"><span class="blk">│Лабораторные методы исследования │</span></pre><pre id="p74" class="P"><span class="blk">├────────────┬───────────────────────────┬─────────────────┬──────────────┤</span></pre><a name="dst100031"></a>
我需要在两个<a name="dst100030">
标记之间获取所有文本。
我试过的是
response.xpath('//pre//text()[preceding-sibling::a[@name="dst100030"] and following-sibling::a[@name="dst100031"]]')
但它返回空列表。我哪里错了?
答案 0 :(得分:3)
<a>
是<pre>
的兄弟,而不是文字()。您可以改为使用preceding::a
(对following
也是如此)。
答案 1 :(得分:-2)
使用re:
解决您所问的问题注意:正如其他人在评论中提到的那样,这可能不是最佳解决方案 - 您最好使用正确的解析器。
import re
source_code ='<div class="text"><a name="dst100030"></a><pre id="p73" class="P"><span class="blk">│Лабораторные методы исследования│</span></pre><pre id="p74" class="P"><span class="blk">├────────────┬───────────────────────────┬─────────────────┬──────────────┤</span></pre></a name="dst100031"></a>'
text = re.findall('<a name="dst100030">(.*)</a name="dst100031">', source_code)
print(text)