我找到了使用Beautiful Soup 4找东西的基础知识。但是现在我遇到了一个特定的问题。我想从以下代码的数据中删除“2DKT94P”:
<div class="js-object listitem_wrap " data-estateid="45784882" data-oid="2DKT94P">
<div class="listitem relative js-listitem ">
关于我如何做到这一点的任何指示?我还要感谢一个高级教程的指针,它涵盖了这个,和/或我可以在官方文档中找到这个的链接,因为我没有认出正确的部分......
提前致谢!
答案 0 :(得分:1)
如果您的数据格式良好,您可以通过以下方式执行此操作:
from bs4 import BeautifulSoup
example = """
<div class="js-object listitem_wrap " data-estateid="45784882" data-
oid="2DKT94P">
<div class="listitem relative js-listitem ">2DKT94P DIV</div>
</div>
<div>other div</div>"""
soup = BeautifulSoup(example, "html.parser")
RandomDIV = soup.find(attrs= {"data-oid":"2DKT94P"})
print (RandomDIV.get_text().strip())
输出:
2DKT94P DIV
使用属性here查找有关find
或find_all
的更多信息。
或通过select
:
RandomDIV = soup.select("div[data-oid='2DKT94P']")
print (RandomDIV[0].get_text().strip())
详细了解select。
修改强>
完全误解了这个问题。如果您只想搜索data-oid
,可以这样做:
soup = BeautifulSoup(example, "html.parser")
RandomDIV = soup.find_all(lambda tag: [t for t in tag.attrs if
t == 'data-oid'])
for div in RandomDIV:
#data-oid
print(div["data-oid"])
#text
print (div.text.strip())
了解详情here。
答案 1 :(得分:1)
您应该使用class属性找到div标记,然后获取它的data-oid
属性
div = soup.find("div", class_="js-object")
oid = div['data-oid']