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

Python使用BeautifulSoup爬虫提取value属性输出None问题求解

解决方法

现有代码存在两处核心错误:

  • 循环逻辑冗余错误:lista_pagine = soup3.find(class_='top-title')返回的是单个节点对象,遍历该对象得到的是其子节点,且遍历过程中始终用父节点lista_pagine查找id为pageSelect的元素,id在HTML中全局唯一,因此你往link_pagine_array中添加的都是重复的同一个select下拉框元素,而非你需要的带value属性的子选项。
  • 提取对象错误:你提取value的对象是select元素本身,select元素的value属性是当前选中项的值,如果你需要获取所有选项的value,需要提取select下的所有option标签的value属性。

修复后代码

link_capitolo_scelto = link_chapter_array[scelta_capitolo]
chapter_url = simple_url + link_capitolo_scelto

r3 = requests.get(chapter_url)
soup3 = BeautifulSoup(r3.content, 'html.parser')

# 直接定位到id为pageSelect的下拉框
page_select = soup3.find(id='pageSelect')
# 定位下拉框下所有option标签
option_list = page_select.find_all('option')

# 遍历提取每个option的value属性
for opt in option_list:
    print(opt.get('value'))

可选排查项

如果修改后仍返回None,可按顺序检查:

  • 打印r3.text确认请求返回的源码中确实存在目标标签,部分动态渲染的内容无法通过requests直接获取,需要使用无头浏览器等工具爬取。
  • 确认目标标签的value属性没有拼写错误,也没有被自定义属性替代。
  • 先打印page_select确认定位成功,避免因页面结构变动导致元素定位失败返回None。

内容的提问来源于stack exchange,提问作者user16711557

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 18:54:02