gpt4 book ai didi

python - 通过文本 beautifulsoup 从第二个 div 中提取文本

转载 作者:行者123 更新时间:2023-12-01 00:13:27 24 4
gpt4 key购买 nike

A 有以下 html 代码。需要根据“text3”值提取text4

    <div class="main">
<ul>
<li>
<div class="1"> text1 </div>
<div class="2"> text2 </div>
</li>
<li>
<div class="1"> text3</div>
<div class="2"> text4</div>
</li>
</ul></div>

我使用了这段代码,但它不起作用。我是否遗漏了什么或者有更简单的解决方案?

a.find_next_sibling('div')[0]
for a in soup.find_all('div', text='text3')

最佳答案

使用 css 选择器识别标签并使用 find_next('div')

html='''   <div class="main">
<ul>
<li>
<div class="1"> text1 </div>
<div class="2"> text2 </div>
</li>
<li>
<div class="1"> text3</div>
<div class="2"> text4</div>
</li>
</ul></div>'''

soup=BeautifulSoup(html,'html.parser')
print(soup.select_one('.main div:contains(text3)').find_next('div').text.strip())
<小时/>

或者您可以使用正则表达式 re。

from bs4 import BeautifulSoup
import re
html=''' <div class="main">
<ul>
<li>
<div class="1"> text1 </div>
<div class="2"> text2 </div>
</li>
<li>
<div class="1"> text3</div>
<div class="2"> text4</div>
</li>
</ul></div>'''

soup=BeautifulSoup(html,'html.parser')
print(soup.find('div', class_='main').find('div',text=re.compile("text3")).find_next('div').text.strip())

关于python - 通过文本 beautifulsoup 从第二个 div 中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59469233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com