Fil*_*ipa 1 python tweepy twitterapi-python
希望你一切都好。
我正在尝试使用 tweepy 库长时间连续提取推文。为此,我有一个无限循环运行的 python 脚本。唯一的问题是,每次连接失败时,由于任何可能的原因,我的脚本都会崩溃,我将不得不重新启动它。所以我想让它特别针对连接错误,为此我使用 try... except 条件,但它似乎不起作用。我已经尝试了网上找到的所有内容,但没有任何效果,有人可以帮助我吗?
这是我的代码:
consumer_key = ""
consumer_secret = ""
access_token = ""
access_token_secret = ""
auth = tweepy.OAuth1UserHandler(
consumer_key, consumer_secret,
access_token, access_token_secret
)
api = tweepy.API(auth)
city = 'LX'
country = 'PT'
coord = '38.736946,-9.142685'
radius = '25km'
while True:
today = datetime.now()
if len(str(today.month)) == 1:
month = str(0) + str(today.month)
else:
month = str(today.month)
n=10
tweets=tweepy.Cursor(api.search_tweets,q="",geocode=coord+','+radius,tweet_mode="extended").items(n)
fname = f'{country}_{city}_{today.day}{month}{str(today.year)[2:]}.json'
with open(fname, 'a') as outfile:
for tweet in tweets:
try:
outfile.write(json.dumps(tweet._json))
outfile.write('\n')
except:
os.system(f'echo error >> log_file.log')
print('error')
pass
outfile.close()
time.sleep(10)
Run Code Online (Sandbox Code Playgroud)
(这是示例代码,因此可能有一些拼写错误)在 except 子句中我已经尝试过tweepy.TweepyException但也没有结果。为了模拟连接错误,我在运行脚本时关闭了互联网,但我不断收到错误并且脚本崩溃,而不是仅仅给我的 except 块并继续运行
我曾经一次运行 tweepy 几个月。这是我解决问题的强力方法:创建一个名为forever.py或任何你想要的文件并使用 popen
#!/usr/bin/python3
from subprocess import Popen
import sys
filename = sys.argv[1]
arg1 = sys.argv[2]
while True:
print("\nStarting " + filename)
p = Popen("python3 " + filename + ' ' + arg1, shell=True)
p.wait()
Run Code Online (Sandbox Code Playgroud)
然后从命令行:
python3 forever.py yourpythonscript.py arg1
Run Code Online (Sandbox Code Playgroud)