我正在尝试从div不同但类名相同的网站上抓取数据。
<div class="release-date-text-wrapper" >
<div class='release-date-title'><a href="/pharrell-x-adidas-nmd-hu-sesame">Pharrell x adidas NMD Hu Sesame</a></div>
<div class='release-date-style'>Sesame/Sand-Bright Red</div>
</div>
</div>
</div>
<div class='col-xs-6 col-sm-3 col-md-3 release-date-item-continer clear-padding'>
<div class='release-date-item-wrapper'>
<div class="release-event-date-wrapper">
<div class="event-date ">
<div>
25 Oct </div>
<div>2020</div>
</div>
</div>
<div class='release-date-image-wrapper'>
<a href="/pharrell-x-adidas-nmd-hu-crystal-white" class='thumbnail'>
<img src="https://4app.kicksonfire.com/kofapp/upload/events_master_images/thumb_ipad_pharrell-x-adidas-nmd-hu-crystal-white.jpg" alt="Pharrell x adidas NMD Hu Crystal White" class="img-responsive imagecache imagecache-kofapp_list" width="250" height="200" />
</a>
</div>
<div class="release-date-text-wrapper" >
<div class='release-date-title'><a href="/pharrell-x-adidas-nmd-hu-crystal-white">Pharrell x adidas NMD Hu Crystal White</a></div>
<div class='release-date-style'>Crystal White/Clear Mint-Shock Yellow</div>
我正在尝试从应显示为以下内容的2个div中提取“ release-date-title”
Pharrell x adidas NMD Hu Sesame
Pharrell x adidas NMD Hu Crystal White
这是我使用的当前代码。
Name = soup.find('div',attrs={'class':'release-date-title'}).text
这给我第一个没有问题,我遇到的麻烦是得到第二个。我尝试了.find_next(“ div”),但它显示了类'release-date-style'。
编辑: 我需要能够逐个选择它们,稍后再将它们添加到不和谐的嵌入中,为每个标题添加颜色和日期。
答案 0 :(得分:1)
代替使用汤.find返回单个项目,而使用汤.findAll返回所有匹配结果的列表。这样,您可以遍历结果以获取所需的内容。
Names = soup.findAll('div',attrs={'class':'release-date-title'})
for name in Names:
print(name.text)
打印:
Pharrell x adidas NMD Hu Sesame
Pharrell x adidas NMD Hu Crystal White
根据下面的评论,您将如何打印结果4:
Names = soup.findAll('div',attrs={'class':'release-date-title'})
print(Names[3].text) #Change this index to get the result you want, right now it is 3 since you wanted result #4
答案 1 :(得分:0)
如果html_doc
是问题的HTML代码段,则此脚本:
soup = BeautifulSoup(html_doc, 'html.parser')
for t in soup.select('.release-date-text-wrapper > div:nth-child(1)'):
print(t.text)
打印:
Pharrell x adidas NMD Hu Sesame
Pharrell x adidas NMD Hu Crystal White
CSS选择器.release-date-text-wrapper > div:nth-child(1)
将选择元素<div>
正下方的第一个class="release-date-text-wrapper"
子对象
或者:
for t in soup.select('.release-date-title > a'):
print(t.text)
或者:
for t in soup.select('.release-date-title'):
print(t.text)