查找具有相同类的BeautifulSoup的不同元素



我正在尝试2个元素从这个url: https://www.welcometothejungle.com/fr/companies/dataiku/jobs/ai-solutions-manager-life-science_london_DATAI_a2jpa5o。CDI和LONDON,这里的问题是:

  • 它们有相同的类
  • 它们在同一个div

for London:

<li class="sc-1qc42fc-0 kExFnG"><span role="img" class="sc-1qc42fc-3 heity"><i name="location" class="sc-kmATbt bGKMNx"></i></span><span class="sc-1qc42fc-2 jmExaK">London</span></li>

for CDI:

<li class="sc-1qc42fc-0 kExFnG"><span role="img" class="sc-1qc42fc-3 heity"><i name="contract" class="sc-kmATbt jYkMSd"></i></span><span class="sc-1qc42fc-2 jmExaK"><span>CDI</span>&nbsp;</span></li>

我可以看到,这两个html代码有一个东西是不同的,一个的名字是位置,另一个合同,但我似乎找不到一种方法来使用这个信息,以正确的元素

我如何才能做到一个soup.find,这将允许我提取bot元素"CDI和伦敦">

?

据我所知,这应该适合你:

# Get all the children of the parent of the first li with that class
lis = list(soup.find_all('li', attrs={'class': 'sc-1qc42fc-0 kExFnG'})[0].parent.children)
fields = {}
for li in lis:
fields[li.find('i').get('name')] = li.text.strip()
print(fields)

输出:

{'contract': 'CDI', 'location': 'London'}

最新更新