【发布时间】:2018-05-03 04:57:46
【问题描述】:
您好,我一直在尝试从列表中删除不存在的 Twitter 用户。我想这样做的原因是因为超时运行我的代码,一些 twitter 用户不再存在,我得到了这个错误
kages/tweepy-3.6.0-py3.6.egg/tweepy/binder.py", line 234, in execute
tweepy.error.TweepError: [{'code': 34, 'message': 'Sorry, that page does not exist.'}]
我无法完成收集我的数据,因为这个错误一直停止运行代码表单,所以我一直在手动逐个浏览我的列表并查找 Twitter 上不存在的 Twitter 帐户,这非常低效。 因此,我一直在尝试使用 try except 块来覆盖此代码,例如删除不再存在的用户名并继续运行我的程序,但我尝试的所有操作都不起作用。这是我的尝试,除了没有 tweepy 的块(只是常规代码),它可以工作。
l=["b",23,"c",6,5]
print(l)
for i in range(0,10):
try:
for a in l:
print("a=",int(a))
except ValueError:
l.remove(a)
print(l)
continue
else:
print(l)
continue
现在我尝试在我的推特列表中实现它
pro_trump=['TruthSerum888','karlyherron', 'R41nB14ck', 'RedApplePol', 'MKhaoS_86']
for i in range(0,3):
try:
for screen_name in pro_trump:
user_followers=api.friends_ids(id=screen_name)# this returns the interger value of the user id a sepcifc user is following
except tweepy.error.TweepError:
print("screen_name that failed=", screen_name)
pro_trump.remove(screen_name)
print(pro_trump)
continue
else:# if no error
print(pro_trump)
continue
但它不起作用。它只是通过 pro_trump 列表从列表中删除每个用户名,无论高音扬声器帐户是否仍然存在。 有人可以帮我实现我真正希望我的代码能做的事情吗?
【问题讨论】:
-
你可以在运行这段代码时添加打印语句的结果吗?另外,
for i in range(0,3)循环是做什么用的? -
for i 循环是通过列表返回,所以基本上第一次循环在 try: 面临错误时,它会转到 except 并从循环中删除错误,以便继续查找更多错误(即不再存在的帐户) for 循环继续循环通过 pro_trump 列表。我会在短时间内上传一些输出。我正在尝试再次运行代码,像往常一样,twitter 的速率是有限的,所以我必须等待 15 分钟才能做任何新的事情:/
-
当我尝试你的代码时,我注意到当我遇到任何类型的 Tweepy 错误,甚至是速率限制错误时,它都会触发
except并导致它删除 ID。这可能就是发生的事情。否则你的代码在我的最后工作。
标签: python python-3.x twitter tweepy