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

Python使用Selenium爬取数据存入字典提示无法赋值给字面量如何解决

错误原因

抛出“无法赋值给字面量”错误的直接原因是Python字典赋值语法使用错误:Python字典通过键存取值必须使用**方括号[]**包裹键,你代码里写的titledic{items} = items.text误用了大括号{},不符合Python语法规则,解释器无法识别该表达式,直接抛出语法错误。
另外你的代码还存在一个隐藏问题:没有导入webdriver模块,修正语法错误后运行会直接报webdriver未定义的异常。

修复要点
  • 补全缺失的导入语句:添加from selenium import webdriver
  • 修正字典赋值语法:将赋值处的大括号替换为方括号
  • 不建议直接把Selenium定位到的WebElement元素对象作为字典键:元素对象本身没有业务标识意义,建议用遍历索引、新闻链接、新闻id这类可哈希、有实际含义的值作为键
修正后可运行代码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By

titledic = {}
browser = webdriver.Chrome()
browser.get('https://www.cbc.ca/news')
browser.implicitly_wait(10)
result = browser.find_elements(By.CLASS_NAME, 'card-content-top')

# 以遍历序号为键存储对应标题文本
for index, item in enumerate(result):
    titledic[index] = item.text

# 打印验证抓取结果
print(titledic)
# 用完浏览器记得退出释放资源
browser.quit()
扩展优化

如果需要让存储的数据更实用,可以抓取每条卡片对应的跳转链接作为键,标题作为值,后续查询使用更方便:

for item in result:
    title_text = item.text
    # 抓取卡片内的跳转链接
    news_link = item.find_element(By.TAG_NAME, 'a').get_attribute('href')
    titledic[news_link] = title_text

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 22:48:19