我了解了使用“美丽汤4”查找东西的基本知识。然而,现在我遇到了一个特定的问题,我想从下面代码的数据类中抓取"2DKT94P“:
<div class="js-object listitem_wrap " data-estateid="45784882" data-oid="2DKT94P">
<div class="listitem relative js-listitem ">关于我该怎么做有什么建议吗?我也希望能有一个指针,作为高级教程的参考,介绍这一点,并/或提供一个链接,说明我可以在正式文档中找到这一点,因为我没有识别出正确的部分.
提前感谢!
发布于 2017-03-10 15:28:00
您应该使用class属性定位div标记,然后获取它的data-oid属性
div = soup.find("div", class_="js-object")
oid = div['data-oid']发布于 2017-03-10 15:18:46
如果您的数据格式化得很好,您可以通过这样做:
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())产出:
2 DKT94P DIV
找到更多关于find或find_all和属性这里的信息。
或者通过select
RandomDIV = soup.select("div[data-oid='2DKT94P']")
print (RandomDIV[0].get_text().strip())找到更多关于选择的信息。
编辑:
完全误解了这个问题。如果只想搜索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())学习更多的这里。
https://stackoverflow.com/questions/42721606
复制相似问题