我试图使用BeautifulSoup收集筹款信息,但在试图将筹款金额等要素与筹款目标分离时遇到了麻烦
以下是迄今为止的代码:
from bs4 import BeautifulSoup
import numpy as np
import pandas as pd
from time import sleep
import requests
import re
import json
page = requests.get("https://www.gofundme.com/f/eric-stevens-care-trust")
soup = BeautifulSoup(page.text, 'lxml')
Amount_raised = soup.find_all('h2', class_='m-progress-meter-heading')[0].get_text()
代码可以工作,但是当我查看结果时,它看起来是这样的:
print(Amount_raised)
882,521 $ raised of 1,000,000 $ goal
理想情况下,我只希望返回数字“882521”,或者更好的是,将其解析为两个变量,一个是筹资金额,另一个是筹资目标
我觉得应该有一种方法来指定我想要的元素,或者使用正则表达式来隔离它,但我的搜索并没有取得成果,而且我对python还相当陌生
编辑:这是我尝试使用的HTML部分
<h2 class="m-progress-meter-heading">882,521 $<!-- --> <span class="text-stat text-stat-title">raised of 1,000,000 $ goal</span>
你可以处理你得到的文本
完整代码:
您还可以跳过
.get_text()
,然后您可以从<h2>
中查找并删除标记<span>
(使用.extrude()
),接下来您可以使用.get_text()
从<h2>
中获取文本完整代码:
您还可以在
<h2>
中获取包含所有strings
的列表,然后来自<span>
的文本将作为列表上的分隔元素完整代码:
编辑:其他示例:
我发现最简单的方法是:
印刷品882521美元
在此处找到解决方案:Only extracting text from this element, not its children
如果您想获得目标和实际筹集的金额,请尝试:
输出:
相关问题 更多 >
编程相关推荐