使用多个元素从HTML中删除数据

2024-09-30 14:35:37 发布

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

我试图从这行名为trade_data的HTML代码中提取data-ppu值:

<input class="tradeForm" data-id="10397992" data-ppu="3893" data-toggle="tooltip" maximum="16450" name="rcustomamount" title="Enter Your Desired Amount" type="number" value="16450"/>

我正在使用Python 3和漂亮的汤。以下是我尝试过的代码:

for index, trade_data in enumerate(trade_data):
   price = trade_data.find('data-ppu')
   print(price)

然而,这不会返回任何结果。非常感谢您的帮助


Tags: 代码nameidinputdatahtmlpriceclass
2条回答

您要求的是所有的<data-ppu>标记,其中没有一个。您需要搜索标记的属性:

for part in trade_data:
    price = part.findAll( lambda tag: tag.name='input' and 'data-ppu' in tag.attrs)

要获取属性,需要执行以下操作:

  • 由于data-ppu<input>标记的一个属性,因此需要首先选择它,然后提取它的属性

选择<input>标记

x = soup.find('input')

提取属性data-ppu

x['data-ppu']

以下是完整的代码:

from bs4 import BeautifulSoup
s = """
<input class="tradeForm" data-id="10397992" data-ppu="3893" data-toggle="tooltip" maximum="16450" name="rcustomamount" title="Enter Your Desired Amount" type="number" value="16450"/>
"""

soup = BeautifulSoup(s,'lxml')
x = soup.find('input')
print(x['data-ppu'])
3893

相关问题 更多 >