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

Python+BeautifulSoup网页爬取:如何仅打印指定行内容

解决方法

嘿,我明白你的问题啦!你现在遇到的问题是因为对字符串索引和列表索引的混淆导致的——你之前给product_size.span.text加[0],是在取每个尺码字符串的第一个字符(比如"36"的第一个字符是"3"),而不是从所有尺码的列表里取第二个元素。

这里有两种简单的解决方式:

方式一:直接获取第二个尺码元素

既然find_all('li')返回的是一个包含所有li元素的列表,你可以直接通过索引[1](Python列表是从0开始计数的,第二个元素索引是1)来获取目标元素,不需要循环:

product_sizes = view_product.find('dl', id='dl_1')
# 获取所有尺码的li元素列表
size_items = product_sizes.find_all('li')
# 取第二个li元素,提取文本
second_size = size_items[1].span.text
print(second_size)  # 输出36

方式二:循环时判断索引

如果你还是想保留循环逻辑,可以用enumerate来同时获取元素的索引和内容,当索引等于1的时候打印并跳出循环:

product_sizes = view_product.find('dl', id='dl_1')
for index, item in enumerate(product_sizes.find_all('li')):
    size_text = item.span.text
    if index == 1:
        print(size_text)  # 输出36
        break  # 找到目标后跳出循环,提升效率

这样就能精准拿到你想要的第二行内容"36"啦!

内容的提问来源于stack exchange,提问作者Muhammad Suhaimi Bin Rosli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:54:48