Python Crawler
Python邊學邊記錄-Crawler網路爬蟲-第一課已經可以取得網頁的資料了,距離目標也就進了一步!
但是我們會發現,如果今天是一個網頁那就沒事,起爬了就開始走,但是如果網頁不存在呢?
程式就中斷了...如果只是一個網頁是小事,如果有很多網頁的話,第一個網頁就掛了,那這中間的等待時間都白費了,所以我們需要去做例外處理!!
try: resp = requests.get('http://marty.blogspot.com/p/python.html') except: resp = None if rsep and resp.status_code == 200 : soup = BeautifulSoup(resp.text, 'html.parser') print(soup.find('h1').text)
透過try except來讓程式可以順利的執行完畢。
如此程式就會順利的一直走下去,不會是上面的錯誤中斷了。
但是,如果還有其它的呢?像tag不在存之類的...總不能...遇見一個就try一個吧!
所以我們就可以把程式碼重構一下,把判斷的部份另外拉出一個fucntion
def get_tag(url, head_tag): try: resp = requests.get(url) if resp.status_code == 200: soup = BeautifulSoup(resp.text, 'html.parser') return soup.find(head_tag).text except Exception as e: return None
這樣子,就可以美觀又防呆了!
沒有留言:
張貼留言