'''
異常處理
程式在執行過程中, 出現了一些未知錯誤
捕獲異常
try:
可能出現異常的**
except:
對異常進行處理
'''a = 10
b = 0
try:
c = a / b
print('a / b = ' + str(c))
except:
print('除數不能是0')
print('結束')
抓取京東:加了異常處理
from selenuim import webdriver
from selenuim.webdrive.support.wait import webdriverwait
from selenuim.webdriver.support import expected_conditions as ec
from selenuim.webdriver.common.by import by
import time
import traceback
# 獲取所有商品列表
def get_goods_list(browser):
ls =
count = 0
wait = webdriverwait(browser, 10)
while true:
try:
goods_list = wait.until(ec.presence_of_element_located((by.id, 'j_goodslist')))
ls_li = goods_list.find_elements_by_class_name('gl-item')
# 在瀏覽器執行一段js**, 讓頁面滾動到指定位置
browser.execute_script('arguments[0].scrollintoview();', ls_li[len(ls_li) - 1])
time.sleep(1)
goods_list = wait.until(ec.presence_of_element_located((by.id, 'j_goodslist')))
ls_li = goods_list.find_elements_by_class_name('gl-item')
# ls =
for li in ls_li:
# 字典
goods = {}
price = li.find_element_by_css_selector('.p-price i').text
name = li.find_element_by_css_selector('.p-name em').text
goods['price'] = price
goods['name'] = name
next = browser.find_element_by_class_name('pn-next')
js_next = next.get_attribute('onclick')
# 到最後一頁停止
# if js_next == none:
# break
# 或者
if not js_next:
break
# 執行js**
browser.execute_script(js_next)
except exception as e:
print(repr(e))
print(traceback.format_exc())
time.sleep(1)
count += 1
if count >= 10:
return
return ls
if __name__ == '__main__':
browser = webdriver.chrome()
# 開啟頁面
browser.get('')
# 使用者輸入關鍵字,查詢此關鍵字的資訊
key = input('請輸入乙個關鍵字:')
# 獲取input
input_markup = browser.find_element_by_id('key')
input_markup.send_keys(key)
# 模擬回車,開啟新頁面
input_markup.send_keys('\n')
ls = get_goods_list(browser)
# 總共多少條資料
print(len(ls))
# 輸出資料
print(ls)
# 儲存到資料庫中
...
python爬蟲 爬蟲異常處理
異常處理概述 常見狀態碼和含義 urlerror與httperror 爬蟲遇到異常時就會直接崩潰停止執行,下次再次執行時,又會重新開始。所以開發乙個具有頑強生命力的爬蟲,必須進行異常處理。兩者都是異常處理的類,httperror是urlerror的子類,httperror有異常狀態碼與異常原因,ur...
爬蟲異常處理
狀態碼 含義200 成功 成功 伺服器已成功處理了請求。通常,這表示伺服器提供了請求的網頁 301 永久移動 請求的網頁已永久移動到新位置。伺服器返回此響應 對 get 或 head 請求的響 應 時,會自動將請求者轉到新位置。302 臨時移動 伺服器目前從不同位置的網頁響應請求,但請求者應繼續使用...
爬蟲異常處理
在這個模組中 urllib.error urlerror httperror都是異常處理類,為了讓 更加的健壯 exception 官方的異常基類,所有的異常類都是直接或者間接的繼承這個類 urlerror 如果斷網或者主機不存在 httperror 請求的資源不存在,比如404 urlerror可...