Python 带HTTP异常的PRAW循环
我正在使用一个Python脚本来循环遍历子插件列表并获取它们的帖子。然而,列表很长,偶尔会出现403404等错误。我试图绕过那些给出错误的,但迄今为止一直无法做到。代码如下 我正在使用Subredits和praw的列表从中提取。但是,该列表相当长,偶尔会删除其中的子Reddit,从而导致HTTP异常(403、404等)。下面是我的代码,有人知道我可以输入一两行代码来跳过那些给出错误的代码吗Python 带HTTP异常的PRAW循环,python,python-3.x,reddit,praw,Python,Python 3.x,Reddit,Praw,我正在使用一个Python脚本来循环遍历子插件列表并获取它们的帖子。然而,列表很长,偶尔会出现403404等错误。我试图绕过那些给出错误的,但迄今为止一直无法做到。代码如下 我正在使用Subredits和praw的列表从中提取。但是,该列表相当长,偶尔会删除其中的子Reddit,从而导致HTTP异常(403、404等)。下面是我的代码,有人知道我可以输入一两行代码来跳过那些给出错误的代码吗 df = pd.read_csv('reddits.csv', sep = ',') df.head()
df = pd.read_csv('reddits.csv', sep = ',')
df.head()
Submission = namedtuple('Submission', ['time', 'score', 'title', 'text', 'author', 'comments', 'url', 'domain', 'permalink', 'ups', 'downs', 'likes', 'crosspost', 'duplicates', 'views'])
data = []
for i in df.reddits:
subreddit = reddit.subreddit(i)
for submission in subreddit.new(limit=10):
time = datetime.utcfromtimestamp(submission.created_utc)
score = submission.score
title = submission.title
text = submission.selftext
author = submission.author
comments = submission.num_comments
url = submission.url
domain = submission.domain
permalink = submission.permalink
ups = submission.ups
downs = submission.downs
likes = submission.likes
crosspost = submission.num_crossposts
duplicates = submission.num_duplicates
views = submission.view_count
data.append(Submission(time, score, title, text, author, comments, url, domain, permalink, ups, downs, likes, crosspost, duplicates, views))
df = pd.DataFrame(data)
os.chdir('wd')
filename = i + str(datetime.now()) + '.csv'
df.to_csv(filename, index=False, encoding='utf-8')
您需要捕获异常,然后才能
继续
df=pd.read\u csv('reddits.csv',sep=','
df.head()
Submission=namedtuple('Submission',['time','score','title','text','author','comments','url','domain','permalink','ups','downs','likes','crosspost','duplicates','views']))
数据=[]
对于df.reddits中的i:
尝试:
subreddit=reddit.subreddit(i)
除HTTPError作为e外:
打印(f“获取{e}检索{subreddit}”)
继续#控制传回外循环的下一次迭代
以subreddit.new格式提交(限制=10):
提交=提交(
datetime.utcfromtimestamp(submission.created_utc),
提交.score,
提交.标题,
提交.selftext,
提交人:,
submission.num_注释,
submission.url,
提交.domain,
submission.permalink,
提交文件.ups,
提交文件.downs,
我喜欢,
submission.num_交叉柱,
submission.num_副本,
submission.view\u计数,
)
数据追加(提交)
df=pd.DataFrame(数据)
os.chdir('wd')
filename=i+str(datetime.now())+'.csv'
df.to_csv(文件名,索引=False,编码=utf-8')
另外,无关:
i
不是该值的好名称;它传统上代表“索引”,而不是包含在其中的内容e
将是对应的泛型名称,代表“element”,但在python中,reddit
将是惯用的选择。哪一行引发了异常?简单的答案是将该行包装在一个try:
块中,在中除了之外什么都不做(或者更好的是,记录一些有用的内容)。它是subreddit=reddit.subreddit(i)。我知道为什么会出现错误,subreddit列表没有完全更新,并且包含一些旧的subreddit。我只想继续超越列表中的那些。一些搜索表明continue:是一个合适的命令,但我不确定在哪里插入它。