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())
?
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态