我正在研究一个Ruby脚本,以便从用户或术语列表中自动收集推文,除非Twitter容量过大,否则它会起作用。然后,Twitter返回一个没有错误代码的HTML页面供我捕获。 HTML抛出解析器,脚本失败。如何检查HTML响应并正常处理?我尝试使用“直到成功”的方法(在下面的代码中注释掉),但每次最终都在拯救。
我正在使用logger,twitter和twitter4r宝石,并通过OAuth进行身份验证。除非Twitter容量过大,否则下面的代码有效。如果没有返回RestErrors,我只会到达此部分。
这是我的代码:
# until success
# begin
if search_type == "users"
# begin
tweets_array = client.timeline_for(:user, :id => row.chomp, :since_id => since_status_id, :count => 200)
success = true
# rescue
# log.info("error getting tweets. waiting to try again.")
# sleep 180
# end
elsif search_type == "terms"
# begin
tweets_array = client.search(:q => row.chomp, :since_id => since_status_id, :count => 200)
success = true
# rescue
# log.info("error getting tweets. waiting to try again.")
# sleep 180
# end
elsif
log.fatal("unsupported search type. exiting.")
break
end # search type
# end
我正在尝试基于答案的代码:
begin
tweets_array = client.timeline_for(:user, :id => row.chomp, :since_id => since_status_id, :count => 200)
success = true
rescue Twitter::RESTError => re
log.info(row.chomp + ": " + re.code.to_s + " " + re.message.to_s + " " + re.uri.to_s)
if re.code = 503
sleep 180
end
end