You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python BeautifulSoup爬取面包屑中的第二个span标签内容

问题解决方法

你当前代码中tag2 = item1.span.a的写法,默认只会匹配节点下第一个符合条件的span内的a标签,因此只能拿到第一级面包屑的"Computers & Laptops"内容。要获取第二级的"Laptops"内容,推荐用以下两种稳定写法,不会受标签嵌套层级变动影响:

方法1:直接按面包屑链接类名批量选取

所有面包屑的跳转a标签都带有breadcrumb_item_anchor类名,find_all返回的列表顺序和页面展示顺序完全一致,直接按索引取值即可:

# 定位面包屑外层容器
breadcrumb_container = soup1.find('div', id='J_breadcrumb_list')
# 获取所有面包屑链接,顺序和页面从上到下展示的层级一致
all_crumb_links = breadcrumb_container.find_all('a', class_='breadcrumb_item_anchor')

# 索引0:Computers & Laptops
# 索引1:Laptops(你要的第二级内容)
# 索引2:Traditional Laptops
second_level_text = all_crumb_links[1].get_text(strip=True)

方法2:按面包屑列表项选取

每一级面包屑都对应一个带breadcrumb_item类名的li标签,先取所有li项再按索引拿内容也可以:

breadcrumb_container = soup1.find('div', id='J_breadcrumb_list')
all_crumb_items = breadcrumb_container.find_all('li', class_='breadcrumb_item')
second_level_text = all_crumb_items[1].get_text(strip=True)

额外注意

你现有代码里的URL模板存在重复拼接域名的问题:

# 错误写法,会拼出https://www.lazada.vn//www.lazada.vn/xxx这种无效地址
template1 = 'https://www.lazada.vn//www.lazada.vn/products/{}.html'

实际爬取时需要修正成正确的路径格式,否则会请求失败。


内容的提问来源于stack exchange,提问作者Mr.Bean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 15:06:23