繁体   English   中英

无法使用 html.parser 提取 web 页面的内容

[英]Unable to extract the contents of a web page using Beautifulsoup with html.parser

我正在尝试使用 Python 脚本从 Fidelity Investments 抓取页面。 我对 Beautifulsoup 有一个问题,经过多次尝试后我无法解决。

我的代码:

    soup = BeautifulSoup(driver.page_source,"html.parser")
    newResult = soup.find_all("span", class_="account-selector--tab-row account-selector--account-balance js-acct-balance ")
    print(newResult)
    try:
       print(newResult.contents)
    except:
       print("Failed newResult.contents")

我得到的结果:

    [<span class="account-selector--tab-row account-selector--account-balance js-acct-balance ">
        $3,980.00</span>]
    Failed newResult.contents

我的问题:

如何将$3,980.00放入字符串变量/对象。

我尝试了很多方法,但未能从newResult中提取任何内容。 例如,我尝试在 try 块中打印newResult.textnewResult.string.strip()newResult.getTextnewResult.get_textnewResult.contentsnewResult.stripped_strings 所有这些都导致从 except 块执行代码。

请注意newResult包含一个换行符和几个不可见的制表符。 我不知道这是否有区别。 任何帮助将不胜感激,因为我无能为力。

怎么了?

soup.find_all()创建与您的选择匹配的span元素列表,您无法直接访问内容。

怎么修?

选项#1 - 遍历你的newResult以获取每个span的文本:

soup = BeautifulSoup(driver.page_source,"html.parser")
newResult = soup.find_all("span", class_="account-selector--tab-row account-selector--account-balance js-acct-balance ")
print(newResult)
for item in newResult:
    try:
       print(item.get_text(strip=True))
    except:
       print("Failed item.get_text(strip=True)")

选项#2 - 如果它只是您想要获取的一个元素,请使用find()而不是find_all()

soup = BeautifulSoup(driver.page_source,"html.parser")
newResult = soup.find("span", class_="account-selector--tab-row account-selector--account-balance js-acct-balance ")
print(newResult)
try:
    print(newResult.get_text(strip=True))
except:
   print("Failed item.get_text(strip=True)")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM