find python,Python BeautifulSoup的 find() 和 findAll()

 2023-11-19 阅读 30 评论 0

摘要:BeautifulSoup 里的 find() 和 findAll() 可能是你最常用的兩個函數。借助它們,你可以通 過標簽的不同屬性輕松地過濾 HTML 頁面,查找需要的標簽組或單個標簽 BeautifulSoup 文檔里兩者的定義就是這樣: findAll(tag, attributes, recursive, text, limit

BeautifulSoup 里的 find() 和 findAll() 可能是你最常用的兩個函數。借助它們,你可以通
過標簽的不同屬性輕松地過濾 HTML 頁面,查找需要的標簽組或單個標簽

BeautifulSoup 文檔里兩者的定義就是這樣:

findAll(tag, attributes, recursive, text, limit, keywords)
find(tag, attributes, recursive, text, keywords)

find python,很可能你會發現,自己在 95% 的時間里都只需要使用前兩個參數: tag 和 attributes,但是我們應該還是仔細觀察所有的參數

標簽參數 tag :傳一個標簽的名稱或多個標簽名稱組成的 Python列表做標簽參數。

例如,下面的代碼將返回一個包含 HTML 文檔中所有標題標簽的列表: .findAll({"h1","h2","h3","h4","h5","h6"})

屬性參數 attributes :是用一個 Python 字典封裝一個標簽的若干屬性和對應的屬性值。

python list find、例如,下面這個函數會返回 HTML 文檔里紅色與綠色兩種顏色的 span 標簽:.findAll("span", {"class":{"green", "red"}}

遞歸參數 recursive 是一個布爾變量,如果recursive 設置為 True , findAll 就會根據你的要求去查找標簽參數的所有子標簽,以及子
標簽的子標簽。如果 recursive 設置為 False , findAll 就只查找文檔的一級標簽。 findAll默認是支持遞歸查找的( recursive 默認值是 True );一般情況下這個參數不需要設置,除非你真正了解自己需要哪些信息,而且抓取速度非常重要,那時你可以設置遞歸參數。

文本參數 text:是用標簽的文本內容去匹配,而不是用標簽的屬性。

范圍限制參數 limit :只用于 findAll 方法。 find 其實等價于 findAll 的 limit 等于1 時的情形。如果你只對網頁中獲取的前 x 項結果感興趣,就可以設置它。但是要注意,這個參數設置之后,獲得的前幾項結果是按照網頁上的順序排序的,未必是你想要的那前幾項。

join Python,還有一個關鍵詞參數 keyword:可以讓你選擇那些具有指定屬性的標簽,例如:

allText = bsObj.findAll(id="text")
print(allText[0].get_text())

?

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/181192.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息