这是来自雅虎金融的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
要将字符串分离,请使用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']
替代方案是.get_text('|').split('|')
,这将导致相同的结果。