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

使用snscrape抓取Twitter时无法捕获无效用户名的ValueError问题

解决方法

问题出在实例化TwitterUserScraper对象时就已经抛出了ValueError,而你的try块只包裹了_get_entity()的调用,根本没覆盖到实例化这一步,所以错误自然捕获不到。

调整代码,把TwitterUserScraper的实例化操作也放进try块内:

import snscrape.modules.twitter as twitterScraper

try:
    scraper = twitterScraper.TwitterUserScraper("ksdbdbkvbdvvbdvbsdvbvbdskbksd")
    if scraper._get_entity():
        print(True)
except ValueError:
    print("Not found")

这样当用户名无效时,实例化过程中抛出的ValueError就会被except块捕获,输出预期的"Not found"。

另外注意:_get_entity()是snscrape的私有方法,未来版本可能会有变动,若要更稳定的实现,可以考虑使用公开的迭代器接口间接验证用户存在性,比如尝试获取一条推文:

import snscrape.modules.twitter as twitterScraper

username = "ksdbdbkvbdvvbdvbsdvbvbdskbksd"
try:
    # 尝试获取第一条推文,若用户不存在会抛出错误
    next(twitterScraper.TwitterUserScraper(username).get_items())
    print(True)
except (ValueError, StopIteration):
    print("Not found")

这样既能验证用户存在,又避免依赖私有方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 22:25:20