当前位置: 首页 > 面试题库 >

了解Beautiful Soup中的Find()函数

朱宇航
2023-03-14
问题内容

我知道我想做的事情很简单,但这让我感到悲伤。我想使用BeautifulSoup从HTML中提取数据。为此,我需要正确使用该.find()功能。这是我正在使用的HTML:

<div class="audit">

    <div class="profile-info">
        <img class="profile-pic" src="https://pbs.twimg.com/profile_images/471758097036226560/tLLeiOiL_normal.jpeg" />
        <h4>Ed Boon</h4>
        <span class="screen-name"><a href="http://www.twitter.com/noobde" target="_blank">@noobde</a></span>
    </div>

        <div class="followers">
            <div class="pie"></div>
            <div class="pie-data">
                <span class="real number" data-value=73599>73,599</span><span class="real"> Real</span><br />
                <span class="fake number" data-value=32452>32,452</span><span class="fake"> Fake</span><br />
                <h6>Followers</h6>
            </div>
        </div>
        <div class="score">
            <img src="//twitteraudit-prod.s3.amazonaws.com/dist/f977287de6281fe3e1ef36d48d996fb83dd6a876/img/audit-result-good.png" />
            <div class="percentage good">
                69%
            </div>
            <h6>Audit score</h6>

我想要的值是73599from data-value=7359932352fromdata-value=3245269%from
percentage good

使用过去的代码和在线示例,这是我到目前为止的内容:

RealValue = soup.find("div", {"class":"real number"})['data-value']
FakeValue = soup.find("audit", {"class":"fake number"})['data-value']

到目前为止都没有任何效果。我不确定如何制作此查找表以提取69%号码。


问题答案:

soup.find("div", {"class":"real number"})['data-value']

在这里,您正在寻找一个div元素,但是span在示例HTML数据中具有“实数”类,请尝试:

soup.find("span", {"class": "real number", "data-value": True})['data-value']

在这里,我们还在检查data-value属性的存在。

要查找具有“实数”或“伪数”类的元素,可以创建CSS选择器:

for elm in soup.select(".real.number,.fake.number"):
    print(elm.get("data-value"))

要获取69%值:

soup.find("div", {"class": "percentage good"}).get_text(strip=True)

或者,一个CSS选择器:

soup.select_one(".percentage.good").get_text(strip=True)
soup.select_one(".score .percentage").get_text(strip=True)

或者,找到h6具有Audit score文本的元素,然后获取前面的同级元素:

soup.find("h6", text="Audit score").previous_sibling.get_text(strip=True)


 类似资料:
  • 问题内容: 当您使用 BeautifulSoup 抓取网站的特定部分时,您可以使用 和或 。 和方法之间有区别吗?(例如,性能或灵活性等)还是相同? 问题答案: 总结评论: select 查找多个实例并返回一个列表, find 查找第一个实例,因此它们不会执行相同的操作。 select_one 将等同于 find 。 我链接时,标签或使用几乎总是使用CSS选择 tag.classname ,如果寻

  • find函数确定已给逻辑条件的数组元素的指标。 以它最简单的形式,返回一个指标的列向量。求这个向量的转置以获得一个指标的单行矩阵。例如: k = find(isprime(A))' 用一维标定指数挑选出素数在魔方中的位置。 k = 2 5 9 10 11 13 以按照k决定的次序的行向量展示这些素数,有 A(k) ans =

  • 问题内容: 对象的可评估字符串表示形式(可以它,这意味着它是评估为Python对象的字符串表示形式) 换一种说法: 问题: 为什么我得到双引号?(这样做的时候我不懂) 为什么我得到时却得到而不是是对象? 问题答案: 因此,名称x将附加到字符串。例如,当你致电时,解释器放而不是,x然后致电。 实际调用一个魔术方法的,这给串包含该值的表示分配给。因此,它会在字符串”“中返回结果”。的想法是给出一个包含

  • apstring类还提供了其他几个可以在字符串上调用的函数。find函数的意义看起来与[]操作符相反。不同于接收索引值然后提取索引值对应的字符,find函数接收一个字符然后找到字符相应的索引。 apstring fruit = "banana"; int index = fruit.find(’a’); 上面例子的功能是找出字符串中字母‘a’的索引。在这个例子中,字母‘a’出现了三次,所以fin

  • 问题内容: 在MATLAB中,很容易找到满足特定条件的值的索引: 用Python做到这一点的最佳方法是什么? 到目前为止,我已经提出了以下建议。仅获取值: 但是,如果我想要每个值的索引,则要复杂一些: 在Python中是否有更好的方法可以做到这一点,尤其是对于任意条件(不仅仅是’val> 2’)? 我在NumPy中找到了与MATLAB’find’等效的函数,但目前无法访问这些库。 问题答案: 您可

  • 问题定义 我在使用BeautifulSoup模块(bs4)时遇到一些问题。我需要解析一些CSS类的(findAll())字符串,并使用get_text()函数对它们进行解包(或者可以说从soup中移除所有标记),但有一些误解。我想做一碗汤 和soup显示指定url的html代码。 稍后我想把数据变量转换成,这是我想要访问的数据,并且只显示。类型后来,我的IDE说您不能使用 就这样。因为soup实例