使用 BeautifulSoup 解析 HTML 時,遇到 .find 和 .select_one 等函數沒有結果的情況並不少見。當在 HTML 文件中找不到匹配元素時,這些函數會傳回 None。隨後,嘗試存取屬性或對 None 值執行操作會引發 AttributeError,因為 None 缺少預期的屬性。
BeautifulSoup 提供兩種類型的查詢:
要在使用單一結果查詢時避免 AttributeError 異常,請檢查結果是否為在嘗試存取其屬性之前沒有任何內容。這可以透過 if 語句或使用 try/ except 模式來完成。
例如,要安全地訪問帶有“sister”類的第一個“a”標籤的文本,請使用:
try: first_sister_link = soup.find('a', class_='sister') if first_sister_link: print(first_sister_link.text) except AttributeError: print("No 'a' tag with class 'sister' found")
在BeautifulSoup中處理單一結果查詢需要檢查結果是否為None 以避免NoneType 錯誤。透過採用適當的保護措施,開發人員可以優雅地處理匹配元素的缺失,並繼續解析操作而不會出現異常中斷。
以上是為什麼我從 BeautifulSoup 的 .find 和 .select_one 函數沒有得到任何結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!