【问题标题】:How to use BeautifulSoup to get text that's in a react text wrapper?如何使用 BeautifulSoup 获取反应文本包装器中的文本?
【发布时间】:2022-01-06 01:15:37
【问题描述】:

这是来自 Yahoo Finance 的 HTML 代码

<p class="class="D(ib) W(47.727%) Pend(40px)">
   <!-- react-text: 561 -->
   "1601 Willow Road"
   <!-- /react-text -->
   <br>
   <!-- react-text: 563 -->
   "Menlo Park, CA 94025"
   <!-- /react-text -->
   <br>
   <!-- react-text: 565 -->
   "United States"
   <!-- /react-text -->
   <br>
   <a href="tel:6505434800" class="C($linkColor)">650 543 4800</a>
   <br>
   <a href="https://investor.fb.com" rel="noopener noreferrer" target="_blank"
    class="C($linkColor)" title="">https://investor.fb.com</a>
</p>

我想单独获取信息字符串,但我现在的代码返回 一切都在一行中。这就是我现在拥有的以及它返回的:

soup.find('p', {'class':'D(ib) W(47.727%) Pend(40px)'}).text

返回

'1601 Willow RoadMenlo Park, CA 94025United States650 543 4800https://investor.fb.com'

另外,这里是链接:https://ca.finance.yahoo.com/quote/FB/profile?p=FB

【问题讨论】:

  • 你能告诉我们你的预期输出吗!
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: python beautifulsoup


【解决方案1】:

要分隔字符串,请使用 stripped_strings

list(soup.find('p', {'class':'D(ib) W(47.727%) Pend(40px)'}).stripped_strings)

或者选择更具体的:

list(soup.select_one('[data-reactid="7"] p').stripped_strings)

这将为您提供与 html 中相同顺序的列表,您可以按索引选择元素:

['1601 Willow Road',
 'Menlo Park, CA 94025',
 'United States',
 '650 543 4800',
 'https://investor.fb.com']

Alternativ 是 .get_text('|').split('|') 会导致相同的结果。

【讨论】:

    猜你喜欢
    • 2017-11-03
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 2012-11-13
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多