擅长:python、mysql、java
<p>您可以在CSS路径中使用<code>:is</code>:</p>
<pre><code>from bs4 import BeautifulSoup as soup
from collections import defaultdict
d, l = defaultdict(list), None
for i in soup1.select('li > :is(a, h4):nth-of-type(1)'):
if i.name == 'h4':
l = i.get_text(strip=True)
else:
d[l].append(i.get_text(strip=True))
print(dict(d))
</code></pre>
<p>输出:</p>
<pre><code>{'A0: Pronouns': ['bb', 'dd'], 'A0: Verbs Tenses & Conjugation': ['ff', 'hh', 'jj']}
</code></pre>
<p>输出存储与语法部分关联的每个<code>li</code>的第一个<code>a</code>。如果您只想在组件结果中使用<code>1-1</code>部分,则可以使用字典理解:</p>
<pre><code>new_d = {a:b for a, (b, *_) in d.items()}
</code></pre>
<p>输出:</p>
<pre><code>{'A0: Pronouns': 'bb', 'A0: Verbs Tenses & Conjugation': 'ff'}
</code></pre>