首页 > 解决方案 > 如何使用漂亮的汤仅从输入中获取值

问题描述

我有一个使用漂亮汤的代码,可以完美地通过其 id 获取元素(我必须通过 id 获取)。但我的输出如下:

[<td id="testebia"><input type="text" value="123599"/></td>]

我只能简化为:

<input type="text" value="123599"/>

使用以下代码:

from bs4 import BeautifulSoup
import requests

url = ('https://naughty-poincare-e28558.netlify.app/')

r = requests.get(url)
html_content = r.text
soup = BeautifulSoup(html_content, 'html.parser')

number = soup.select("#testebia")

for lista_dados  in number:
  print(lista_dados.next_element) 

我该怎么做才能只获得价值?在这种情况下 123599

标签: pythonweb-scrapingbeautifulsoup

解决方案


您可以选择<input>并获取value=属性:

import requests
from bs4 import BeautifulSoup


url = "https://naughty-poincare-e28558.netlify.app/"
soup = BeautifulSoup(requests.get(url).content, "html.parser")

val = soup.select_one("#testebia > input")["value"]
print(val)

印刷:

123599

或使用您的代码:

for n in soup.select("#testebia"):
    print(n.find("input")["value"])

推荐阅读