所以这是我的HTML代码:
</div><div id="structureDescs" class="buttonWrap"><h2>Structure Descriptors</h2>
<div><h3>InChI</h3>
1S/C2H4O/c1-2-3/h2H,1H3<br>
<button type="button" id="downloadInchi">Download</button>
</div>
<div><h3>InChIKey</h3>
IKHGUXGNUITLKF-UHFFFAOYSA-N<br>
<button type="button" id="googleInchi">Search the web for this InChIKey</button>
</div>
<div class="scrollWrapper"><h3>Smiles</h3>
CC=O<br>
<button type="button" id="downloadSmiles">Download</button>
</div>
</div>
现在,我尝试在“微笑”部分中
<br>
标记之前选择文本“ CC = O”。我已经在XPath和Python中使用tree.xpath('//*[text()="Smiles"]/..//br[1]/preceding-sibling::text()[1]')
完成了此操作但是,我的输出是['\ n \ t \ t \ tCC = O'],我希望摆脱掉换行符和制表符,因为我的期望输出仅为“ CC = O”。有什么建议吗?
最佳答案
在Python方面,您可以使用str.strip()
从字符串的两侧删除空格:
In [290]: data = ['\n\t\t\tCC=O']
In [291]: data[0].strip()
Out[291]: 'CC=O'
或者,在XPath端,您可以使用
normalize-space
:In [299]: tree.xpath('normalize-space(//*[text()="Smiles"]/..//br[1]/preceding-sibling::text())')
Out[299]: 'CC=O'
请注意,除了删除开头和结尾的空格外,
normalize-space
还将多个空格替换为一个空格。关于python - 如何删除Xpath中标签前面的换行符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30855579/