在HTML中访问span标记的内容

2024-09-30 03:26:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

url = 'https://www.drikpanchang.com/?geoname-id=5907364'

#Open web page
uClient = uReq(url)
page_html = uClient.read()
uClient.close()

#Parse html
page_soup = soup(page_html, 'html.parser')

keys = page_soup.findAll('span', {'class': 'dpDainikPanchangKey'})
values = page_soup.findAll('span', {'class': 'dpDainikPanchangValue'})


print(keys[5])
print(values[5])

代码的输出为:

<span class="dpDainikPanchangKey">Karana</span>
<span class="dpDainikPanchangValue">Bava <span class="dpOffColor">upto</span> 08:01 <span class="dpTimeStamp">AM</span></span>

如何访问键[5]中的“Karana”和值[5]中的“Bava”,并将它们分配给变量


Tags: 代码fromimporturlhtmlaspagekeys
2条回答

使用var_1 = keys[5].get_text()var_1 = keys[5].text。有关get_text()方法的更多信息,请参见bs4 documentation page

对于values,使用类似var_2 = values[5].text.split()[0]的内容来获取“Bava”

为了解释这一点,.text.get_text()检索您解析的标记的文本属性

“Bava”可能有一个更优雅和定制的解决方案,但这将完成这项工作

你可以这样做

要从keys[5]获取值,只需执行以下操作

keys_5 = keys[5].text.strip()

要从values[5]获取所需的值

  • 使用stripped_strings并获取第一项

    val_5 = next(values[5].stripped_strings)
    
  • 您也可以这样使用.contents

    val_5 = values[5].contents[0]
    
keys_5 = keys[5].text.strip()
val_5 = next(values[5].stripped_strings)

print(f'keys_5: {keys_5}')
print(f'val_5: {val_5}')
keys_5: Karana
val_5: Kaulava

相关问题 更多 >

    热门问题