如何用while跟try except去抓回未知總數的資料?

Hi! PyCralwer 101的各位朋友,大家好!

昨天的課程不知道大家是否能跟上呢?由於我們下週不上課,如果有問題要記得趕快來這裡發問,這樣就可以有兩週的時間複習。

我這裡先解答一位朋友在昨天問我的問題,她的問題是:

以義守大學攝影社為例,由於每次只能抓回一張,如果想要一次抓回所有的相片,但又不知道總共有幾張,該怎麼做?

由於這是一個好問題,所以我下課時有給她一個簡單的範本作為參考,正式解答我寫在下面,如果我哪裡寫錯的話,也請家齊跟其他夥伴幫忙糾正一下,謝謝!

這個問題要分成兩個部分來拆解,

  1. 一次抓回所有的資源(相片 / 網址 / 字串…),用 while迴圈
  2. 不知道總數是多少,用 try except

我用一個簡單的例子說明,假設你要抓回所有的相片,那麼我們任意打開一張相片,網址是 http://pi.isuphoto.org/post/677

我把677改成0,出現連結錯誤,所以沒有0。改成1,有照片,所以這串資源編號由1開頭,但不知道最後一張編號是多少。

我相信大家有能力自己寫出完整版本,所以我只寫個範本,連接 在此,幾個重點解說:

  1. counter就是資源的編號,此例由1開頭。
  2. while True:代表我要執行一個不斷重複的迴圈,直到錯誤(Exception)出現。
  3. url = http://pi.isuphoto.org/post/{}“:{}放counter,此例只有一個。
  4. counter +=1 :做完你要做的事後,前往下個資源編號。
  5. except:如果總數只有100,counter卻跑到101,就會出現exception,印出錯誤碼然後處理他。
  6. break:我這裡用最簡單的處理就是離開while迴圈。

那麼,請自己寫看看完整版本吧!多練習就會熟能生巧的!

有問題請在論壇發問,謝謝!

 

 

Share the joy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Recent Posts

Recent Comments

Archives

Categories

Meta

johnchen Written by:

One Comment

  1. TCYS
    October 20, 2015
    Reply

    請問有範例可以提供嗎?

Leave a Reply

Your email address will not be published. Required fields are marked *