爬蟲三 異常

2021-09-11 04:13:40 字數 2410 閱讀 1557

'''

異常處理

程式在執行過程中, 出現了一些未知錯誤

捕獲異常

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可...