导入twitterscraper运行时出现'NoneType'无find_all属性错误如何解决
问题原因
- 代码存在拼写错误:
import daterime as dt应为import datetime as dt,该错误会触发ImportError,请先修正该笔误。 AttributeError: 'NoneType' object has no attribute 'find_all'报错核心原因是twitterscraper库早已停止维护:该库的实现逻辑是爬取旧版推特(现已改名为X)的公开前端页面,解析HTML节点提取推文内容,而目前X的前端页面结构已经过多次重大改版,且增加了强制登录校验等反爬机制,该库请求到的返回内容并非预期的推文列表页,解析对应节点时返回空值None,调用find_all方法时就会触发该报错。
解决方案
- 方案1:放弃使用已停更的twitterscraper库,改用X官方开放API获取数据。申请X开发者账号后调用官方接口获取公开的推文数据,不会受前端页面结构变动影响,稳定性更高。
- 方案2:换用其他仍在维护的第三方X爬虫工具,比如对接官方API的
tweepy、支持无账号爬取公开内容的snscrape等,可用性远高于twitterscraper。 - 方案3:如果必须使用twitterscraper,可手动修改库源码里的HTML解析规则,适配当前X的前端节点结构,同时配置登陆态cookie绕过反爬校验,但该方案维护成本极高,不推荐使用。
内容的提问来源于stack exchange,提问作者hey
相关产品推荐
相关产品推荐

