【问题标题】:Can't access HTML value using BeautifulSoup4无法使用 BeautifulSoup4 访问 HTML 值
【发布时间】:2021-08-28 06:50:23
【问题描述】:

我正在尝试访问 wolfram 网站上的值字段 https://www.wolframalpha.com/calculators/triple-integral-calculator

我想访问这 4 个字段中的每一个并将每个字段复制到 python 中的列表中。 我正在努力实现价值。

这是 HTML 图片:

这是我的代码以及到目前为止我尝试过的代码:

from bs4 import BeautifulSoup
import requests

URL = 'https://www.wolframalpha.com/calculators/triple-integral-calculator'
page = requests.get(URL)
print(page)

soup = BeautifulSoup(page.content, 'html.parser')

content = soup.find("div",{"class":"_3hRV6"})
label = content.find("label",{"class":""})
value = content.find("input",{"autocapitalize":"off"})
hint = value.find("id")
print(content)
print(label)
print(value)
print(hint)

任何帮助将不胜感激。

谢谢你, 锇鱼

【问题讨论】:

    标签: python python-3.x web-scraping beautifulsoup


    【解决方案1】:

    要将<input> 中的所有 4 个值放入您可以使用的列表中:

    import requests
    from bs4 import BeautifulSoup
    
    URL = "https://www.wolframalpha.com/calculators/triple-integral-calculator"
    page = requests.get(URL)
    soup = BeautifulSoup(page.content, "html.parser")
    
    out = [inp["value"] for inp in soup.select("input")]
    print(out)
    

    打印:

    ['x^2 + y^2 + z^2', 'x', 'y', 'z']
    

    【讨论】:

    • 非常感谢!你介意解释一下这条线吗? out = [inp["value"] for inp in soup.select("input")] 如果我想单独打印这些值怎么办?我问的原因是因为这是一个虚拟测试,对于另一个我需要使用它的真实项目。再次感谢你:)
    • @Osmiqa soup.select("input") 将从 HTML 文档中选择所有 <input> 标记。 [inp["value"] for inp in soup.select("input")] 是一个“列表理解”——它将遍历所有 <input> 标签并将 value="..." 属性存储在新列表中。要单独打印值,您可以执行以下操作:print(*out, sep='\n')
    • 感谢您的解释。它确实清除了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 2018-01-15
    相关资源
    最近更新 更多