2017-05-12 73 views
0

即時通訊連接到一個網站與python請求,並正常工作。Python - 繼續不工作for循環?

我的問題是,我有一個代理使用的代理列表,如果其中一個代理ip正在返回一個404錯誤,我然後需要我的for循環去循環的頂部,並繼續,直到我得到一個響應爲200.

當我的循環遇到異常/ 400-503錯誤時,它會返回到代碼的頂部,但是隻是出現循環,並繼續執行代碼。

快速注意:代理數組有6個IP,並且循環dosent得到他們全部。

什麼是錯,即時使用下面的代碼,繼續?

for l in list: 
    for a in otherlist: 
     for proxy in randomProxy: 
      print 'Using Proxy: ', proxy 
      try: 
       r = requests.get(url, timeout=20, headers=headers, proxies=proxy) 
       if r.status_code == 200: 
        response = r 
        print 'Good Proxy: ', proxy 
        pass 
       else: 
        print 'Bad Proxy: ', proxy 
        continue 
      except requests.exceptions.RequestException as e: 
       # A serious problem happened, like an SSLError or InvalidURL 
       print "Error: {}".format(e) 
       continue 

我真的不明白爲什麼會發生這種情況,也許我錯了怎麼繼續工作?

回答

1

這可能工作

for proxy in randomProxy: 
    print 'Using Proxy: ', proxy 
    try: 
     r = requests.get(url, timeout=20, headers=headers, proxies=proxy) 
     if r.status_code == 200: 
      response = r 
      print 'Good Proxy: ', proxy 
      break 
     else: 
      print('Bad Proxy:', proxy) 
      print('Proxy is not working!') 
      continue 
    except: 
     print('Bad Proxy:', proxy) 
     print('Proxy is not working!') 
+0

對不起@Amey我對計算器錯誤壓痕。 for循環完美,但如果它遇到異常或http錯誤,那麼我希望它繼續下一個在列表中的IP。但它不會,你有什麼好主意? – Dannie