【问题标题】:Exclude span from parsing with requests-html使用 requests-html 从解析中排除 span
【发布时间】:2021-08-23 11:21:48
【问题描述】:

我在使用 Python 和 requests-html lib 解析网页方面需要帮助。这里是我要分析的<div>

<div class="answer"><span class="marker">А</span>Te<b>x</b>t</div>

它呈现为:

Text

我需要得到Te&lt;b&gt;x&lt;/b&gt;t 作为解析的结果,没有&lt;div&gt;&lt;span&gt; 但带有&lt;b&gt; 标签。

使用 element 作为 requests-html 对象,这就是我得到的。

element.html:
<div class="answer"><span class="marker">А</span>Te<b>x</b>t</div>

element.text:
ATe\nx\nt

element.full_text:
AText

你能告诉我如何摆脱&lt;span&gt;,但在解析结果中仍然得到&lt;b&gt;标签吗?

【问题讨论】:

    标签: python parsing python-requests python-requests-html


    【解决方案1】:

    不要过于复杂。

    做一些简单的字符串处理,得到两个边界之间的字符串:

    • 使用element.html
    • 收盘后拿走所有东西&lt;/span&gt;
    • 收盘前拿走一切&lt;/div&gt;

    这样

    myHtml = '<div class="answer"><span class="marker">А</span>Te<b>x</b>t</div>'
    
    myAnswer = myHtml.split("</span>")[1]
    myAnswer = myAnswer.split("</div>")[0]
    
    print(myAnswer)
    

    输出:

    Te<b>x</b>t
    

    似乎适用于您提供的示例。如果您有更复杂的要求,请告诉我们,我相信有人可以进一步适应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-01
      • 2012-05-27
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多