Python 如何从BeautifulSoup4中的html标记中查找特定的数据属性?
有没有办法只使用html中的data属性来查找元素,然后获取该值 例如,在html文档中使用此行:Python 如何从BeautifulSoup4中的html标记中查找特定的数据属性?,python,html,web-scraping,beautifulsoup,Python,Html,Web Scraping,Beautifulsoup,有没有办法只使用html中的data属性来查找元素,然后获取该值 例如,在html文档中使用此行: <ul data-bin="Sdafdo39"> 如何通过在整个html文档中搜索具有data bin属性的元素来检索Sdafdo39?您可以使用find\u all方法来获取所有标记,并基于在其属性中找到的“data bin”进行过滤,将获得获得它的实际标记。然后我们可以简单地提取它对应的值,如下所示 from bs4 import BeautifulSoup html_doc
<ul data-bin="Sdafdo39">
如何通过在整个html文档中搜索具有
data bin
属性的元素来检索Sdafdo39
?您可以使用find\u all
方法来获取所有标记,并基于在其属性中找到的“data bin”进行过滤,将获得获得它的实际标记。然后我们可以简单地提取它对应的值,如下所示
from bs4 import BeautifulSoup
html_doc = """<ul data-bin="Sdafdo39">"""
bs = BeautifulSoup(html_doc)
print [item["data-bin"] for item in bs.find_all() if "data-bin" in item.attrs]
# ['Sdafdo39']
从bs4导入美化组
html_doc=“”“
bs=美化组(html\U文档)
为bs中的项目打印[item[“data bin”]。如果item.attrs中的“data bin”,则为find_all()
#['Sdafdo39']
更准确一点
这样,迭代列表只包含具有您想要查找的属性的ul元素
from bs4 import BeautifulSoup
bs = BeautifulSoup(html_doc)
html_doc = """<ul class="foo">foo</ul><ul data-bin="Sdafdo39">"""
[item['data-bin'] for item in bs.find_all('ul', attrs={'data-bin' : True})]
从bs4导入美化组
bs=美化组(html\U文档)
html_doc=“”foo
“
[bs.find_all('ul',attrs={'data-bin':True}中的项的项['data-bin']
您只需几行即可解决此问题: 首先,导入html并将其转换为
Soup
对象:
来自gazpacho进口汤的
html=“”“”
汤=汤(html)
然后,您只需搜索“ul”标记并提取href属性:
soup.find(“ul”).attrs[“数据箱”]
#Sdafdo39
from bs4 import BeautifulSoup
bs = BeautifulSoup(html_doc)
html_doc = """<ul class="foo">foo</ul><ul data-bin="Sdafdo39">"""
[item['data-bin'] for item in bs.find_all('ul', attrs={'data-bin' : True})]