我想从这个HTML DOM中获取Name / logo / Description / type 我使用python Beautiful Soup并获得Description和Type 使用
soup = BeautifulSoup(html_data)
for h in soup.findAll("span", { "class" : "description" }):
print h.text
但无法在Json文件中获取名称和徽标。
<a href="/organization/flipkart">
<div class="container organization_autocomplete">
<div class="logo">
<img src="https://abcdsdsdsf/imm.jpg">
</div>
<div class="identity container">
<div class="follow_card_wrapper"><div class="link_container"><div class="name follow_card" data-name="Flipkart" data-type="Organization" data-uuid="43b9e775b843f194fb96d266684cfb53" data-permalink="/organization/flipkart" data-image="https://abcdsdsdsf/imm.jpg">Flipkart</div></div><div class="card_inner"></div></div>
<div class="content container">
<span class="type">Company - </span>
<span class="description">
Flipkart is an online shopping destination for electronics, books, music and movies.
</span>
</div>
</div>
</div>
</a>
我尝试使用相同的方法替换Class name,但获取空输出。 任何人都可以告诉如何在这种情况下处理嵌套类
修改 我很欣赏Alecxe的努力但是看看alecxe的答案我有些困惑。
如果有人可以解释他们所在的课程,那将是件好事 有多个名称,如
<div class=container
organization_autocomplete>
在此如何决定使用哪一个 用于选择名称容器或organization_autocomplete和 同样地
答案 0 :(得分:2)
我会使用类属性获取名称和徽标:
logo = soup.find("div", class_="logo").img["src"]
name = soup.find("div", class_="identity").find("div", class_="name").get_text()
print(logo, name)
或者,通过CSS selectors:
logo = soup.select_one("div.logo img")["src"]
name = soup.select_one("div.identity div.name").get_text()
print(logo, name)
至于选择使用哪个类,以及一般应用哪种定位技术 - 没有灵丹妙药。但是,建议依赖于ID和数据导向的&#34;类或其他面向数据的属性。例如,在您的情况下,container
类更多&#34;布局&#34; -oriented而不是&#34;数据&#34; -oriented。