.select()元素允許我從基於css選擇器的網頁獲取元素,但是這將搜索整個網頁。我將如何使用.select(),但只搜索特定元素的子元素。例如:Python美麗的湯4使用.select()獲取元素的子元素
<!-- Simplified example of the structure -->
<ul>
<li>
<div class="foo">foo content</div>
<div class="bar">bar content</div>
<div class="baz">baz content</div>
</li>
<li>
<!-- We can't assume that foo, bar, and baz will always be there -->
<div class="foo">foo content</div>
<div class="baz">baz content</div>
</li>
<li>
<div class="foo">foo content</div>
<div class="bar">bar content</div>
<div class="baz">baz content</div>
</li>
</ul>
我想一個方式說: 爲<li>
[0]富包含的價值"foo content"
,酒吧包含的價值"bar content"
等。
目前我的解決方案如下:
foos = soup.select("div.foo")
bars = soup.select("div.bar")
bazs = soup.select("div.baz")
for i in range(len(foos)):
print("{i} contains: {} and {} and {}".format(i=i, foos[i], bars[i], bazs[i]))
這個工作的大部分。但是當一個元素缺失時,它會完全崩潰。就像我在HTML中展示的那樣,我們不能假定三個bar,baz和foo元素都會出現。
因此,我將如何只搜索兒童。因此,我可以做這樣的事情:
for i in soup.select("li"):
#how would i do this:
foo = child_of("li", "div.foo")????
bar = child_of("li", "div.bar")????
baz = child_of("li", "div.baz")????