从网页抓取数据属性

时间:2020-06-15 15:58:02

标签: python html web-scraping beautifulsoup

在使用python抓取一些数据属性(从站点中获取)时,我需要一些帮助。我试过运气不佳地使用lxmlrequests,并且在网上看了一下,发现了一些有关使用美丽汤的文章。唯一的问题是我不确定如何。

这就是我想刮的东西。

<div class="card-body ">

<div class="card-entry" data-var1="0" data-var2="1" data-var3="20" data-var4="3" data-var5="9">… </div>">
<div class="card-entry" data-var1="1" data-var2="2" data-var3="9" data-var4="2" data-var5="7">… </div>">
<div class="card-entry" data-var1="2" data-var2="3" data-var3="1" data-var4="3" data-var5="3">…</div>
<div class="card-entry" data-var1="3" data-var2="4" data-var3="5" data-var4="2" data-var5="9">…</div> 

我正在尝试获取data-var5值,但我不知道如何。希望有人能帮忙。

此致

Hazza

2 个答案:

答案 0 :(得分:1)

from bs4 import BeautifulSoup

html = """
<div class="card-entry" data-var1="0" data-var2="1" data-var3="20" data-var4="3" data-var5="9">… </div>
<div class="card-entry" data-var1="1" data-var2="2" data-var3="9" data-var4="2" data-var5="7">… </div>
<div class="card-entry" data-var1="2" data-var2="3" data-var3="1" data-var4="3" data-var5="3">…</div>
<div class="card-entry" data-var1="3" data-var2="4" data-var3="5" data-var4="2" data-var5="9">…</div> 
"""

soup = BeautifulSoup(html, "html.parser")
divs = soup.find_all("div", "card-entry")
for div in divs:
    print(div["data-var5"])

答案 1 :(得分:1)

您可以使用select。您可以尝试:

from bs4 import BeautifulSoup
html = """
<div class="card-entry" data-var1="0" data-var2="1" data-var3="20" data-var4="3" data-var5="9">… </div>
<div class="card-entry" data-var1="1" data-var2="2" data-var3="9" data-var4="2" data-var5="7">… </div>
<div class="card-entry" data-var1="2" data-var2="3" data-var3="1" data-var4="3" data-var5="3">…</div>
<div class="card-entry" data-var1="3" data-var2="4" data-var3="5" data-var4="2" data-var5="9">…</div> 
"""

soup = BeautifulSoup(html, "lxml")
data_var = soup.select('div[data-var5]')

for data in data_var:
    print("data-var5: " + data['data-var5'])

输出将是:

data-var5: 9
data-var5: 7
data-var5: 3
data-var5: 9
相关问题