我有html代码:
<h3 class="s-item__title s-item__title--has-tags" role="text">
<div>
<div class="s-item__title-tag">SOLD Oct 9, 2018</div>
</div>
<span class="LIGHT_HIGHLIGHT">New Listing</span>MAX DELL PRECISION M4800 I7-4930XM EXTREME EDITION 3GHz 16GB 500GB SSD K2100 FHD
</h3>
我想获得“ MAX DELL PRECISION M4800 I7-4930XM EXTREME EDITION 3GHz 16GB 500GB SSD K2100 FHD”,但是当我这样做时:
pre_title_and_sold=rel_text.findAll("h3",{"class":"s-item__title s-item__title--has-tags"})
print(pre_title_and_sold)
我知道
SOLD Oct 8, 2018Dell Precision M6500 17" LED Workstation i7 1.6GHz 4GB RAM 111GB HD DVDRW Win 7
我想得到
"MAX DELL PRECISION M4800 I7-4930XM EXTREME EDITION 3GHz 16GB 500GB SSD K2100 FHD"
我想如果我能够删除此部分,则可以执行[0] .text路由(因为我正在浏览网页)
<div class="s-item__title-tag">SOLD Oct 9, 2018</div>
我试图查看文档,但感到困惑。 我的问题有点类似于Get content after a div within another div,但仍需要澄清。
带有BeautifulSoup的python 3.5赢得了10
答案 0 :(得分:0)
您必须找到包含文本的实际标签。检查此代码。我提供了2种查找文字的选项!
from bs4 import BeautifulSoup
html = '''<h3 class="s-item__title s-item__title--has-tags" role="text">
<div>
<div class="s-item__title-tag">SOLD Oct 9, 2018</div>
</div>
<span class="LIGHT_HIGHLIGHT">New Listing</span>MAX DELL PRECISION M4800 I7-4930XM EXTREME EDITION 3GHz 16GB 500GB SSD K2100 FHD
</h3>'''
soup = BeautifulSoup(html, 'html.parser')
title = soup.find('h3', attrs={'s-item__title s-item__title--has-tags'}).span.next_sibling#first option
title1 = soup.select('.LIGHT_HIGHLIGHT')[0].next_sibling#second option
print(title)
print(title1)
输出:
MAX DELL PRECISION M4800 I7-4930XM EXTREME EDITION 3GHz 16GB 500GB SSD K2100 FHD