首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从网页中抓取数据属性

从网页中抓取数据属性
EN

Stack Overflow用户
提问于 2020-06-15 15:58:02
回答 2查看 630关注 0票数 2

我需要一些帮助使用python来,刮,一些数据属性形成一个站点。我试过使用lxmlrequests,但没有运气,我在网上查看过,我发现了一些关于使用漂亮汤的文章。唯一的问题是我不知道怎么做。

这是我想刮的东西。

代码语言:javascript
运行
复制
<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值,但我不知道如何实现。希望有人能帮忙。

致以敬意,

哈扎

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-15 17:06:05

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

代码语言:javascript
运行
复制
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'])

产出将是:

代码语言:javascript
运行
复制
data-var5: 9
data-var5: 7
data-var5: 3
data-var5: 9
票数 1
EN

Stack Overflow用户

发布于 2020-06-15 16:31:48

代码语言:javascript
运行
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62392156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档