当前位置: 首页 > 知识库问答 >
问题:

从网页中刮取数据属性

慕容嘉熙
2023-03-14

我需要一些关于使用python来删除站点中的一些数据属性的帮助。我尝试过使用lxmlrequests但没有成功,我在网上找到了一些关于使用beautiful Soup的文章。唯一的问题是我不知道怎么做。

这是我要刮的。

<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值,但我不知道如何获得。希望有人能帮忙。

问候,

哈扎

共有2个答案

蒋飞捷
2023-03-14
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"])
章宏恺
2023-03-14

您可以使用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
 类似资料:
  • 已解决 通过使用HTMLUnit并在打印页面前停止一段时间,我让它打印缺少的内容

  • 我需要从下面的链接刮表。 我使用selenium编写了一个脚本,可以单击下一个页面,但每个页面中的表似乎没有标记。相反,它似乎只包含标记。我发现很难在这个网站上找到桌子。任何帮助都是非常贴切的。 编辑%1 提前道谢。

  • 问题内容: 我的问题是:如何从网站抓取数据,但是直到单击例如“Danhsáchchậm”,该数据才显示。我已经非常认真地尝试,当您单击“Danhsáchchậm”时,这是onclick事件,该事件触发了一些javascript函数js函数之一是从服务器获取数据并将其插入标签/占位符,然后在此时,您可以使用firefox之类的方法检查数据,是的,数据将显示给网页上的用户/查看者。因此,我们又该如何以

  • 最近我一直在用Python和靓汤学习网页刮刮乐。然而,当我试图刮下下面的页面时,我遇到了一点麻烦: http://www.librarything.com/work/3203347 我想从页面上得到的数据是这本书的标签,但我找不到任何方法来获取数据,尽管我花了很多时间在网上拖网。 我试着在网上看了几本指南,但似乎没有一本奏效。我尝试将页面转换为XML和JSON,但仍然找不到数据。 我现在有点手足无

  • 我用selenium用python编写了一个脚本,用于解析填充输入框并访问按钮时填充的一些结果。现在我的脚本很好地完成了这一部分。但是,我的主要目标是解析容器的标题,也可以作为来显示。 这是我到目前为止的尝试():

  • 我正在从一个站点上刮取数据,每个项目都有一个相关的文档URL。我想从那个文件中刮数据,这是可用的HTML格式后点击链接。现在,我一直在使用Google Sheets导入feed来填充基本列。 有没有下一步,我可以做的,进入每个相应的URL并从文档中抓取元素,并用它们填充Google表单?我之所以使用RSS提要(而不是python和BS)是因为它们实际上提供了一个RSS提要。 我找过了,没有找到一个