我正在向一個網站發出 POST 請求,其中包含許多商店的商店名稱、街道和城市,每個商店都在網頁上自己的卡片中。我正在嘗試使用 xpath 從站點記錄該資料。有少量專案(例如商店名稱)無法讀取,從而生成 IndexError,我正在嘗試使用 try-except 處理這些錯誤。
在下面的代碼中,僅在讀取單個標題變數并將其附加到名稱串列時出現錯誤。我的代碼捕獲了例外,但由于某種原因,當我知道例外發生在“place3”中。
python 是否有理由將例外代碼變數附加到串列末尾,即使認為例外應該在 for 回圈結束之前引發?
rest_count = len(response.html.xpath('//*[@id="search-results-container"]//div[@]'))
names = []
street_address = []
city_address = []
for item in range(rest_count):
try:
title = response.html.xpath('//*[@id="search-results-container"]//div[@]/h4/text()')[item]
names.append(title)
except IndexError:
title = 'X_NAME_ERROR_X'
names.append(title)
try:
street = response.html.xpath('//*[@id="search-results-container"]//div[@]/p[1]/text()')[item]
street_address.append(street)
except IndexError:
street = 'X_STREET_ERROR_X'
street_address.append(street)
try:
city = response.html.xpath('//*[@id="search-results-container"]//div[@]/p[2]/text()')[item]
city_address.append(city)
except IndexError:
city = 'X_CITY_ERROR_X'
city_address.append(city)
uj5u.com熱心網友回復:
您嘗試索引的資料結構是[thing1, thing2, thing4],而不是[thing1, thing2, some_magic_thing_that_raises_an_IndexError, thing4]. 索引 0、1 和 2 有效,但索引 3 超出范圍,因此最后會出現 IndexError。您可能期望在事物 2 和 4 之間有額外的東西,但這不是 IndexError 發生的地方。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/441337.html
上一篇:如何僅洗掉字串特定部分中的空格
