for ループを使用して Web ページをクロールします。ただし、いくつかのページをクロールしているときに、ip request limit エラーが発生します。20ページごとにクロールしたときにpythonを数秒間スリープさせようとしましたが、エラーが発生します。Python が 60 秒スリープした後、再びクロールを開始できます。
問題は、例外が発生するたびに、情報のページが失われることです。python は try-except メソッドを使って例外ページを飛び越えているようです。
例外が発生したページから再度クロールを再開するのが最善の方法ではないかと考えています。
私の質問は、例外的なページからクロールを再開する方法です。
pageNum = 0
for page in range(1, 200):
pageNum += 1
if(pageNum % 20 ==0): # every 20 pages sleep 180 secs
print 'sleeep 180 secs'
time.sleep(180) # to oppress the ip request limit
try:
for object in api.repost_timeline(id=id, count=200, page=page):
mid = object.__getattribute__("id")
# my code here to store data
except:
print "Ip request limit", page
sleep.time(60)