所以这是我的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/

10-11 22:08
查看更多