BeautifulSoup支持Python標準庫中的HTML解析器和壹些第三方解析器,其中壹個就是lxml。下面是BeautifulSoup官方文檔中支持的解析器的優缺點對比。
推薦使用Lxml解釋器以獲得更高的效率。註意:不同的解析器返回不同的結果。
通過解析器,BeautifulSoup可以傳入壹個字符串或文件。
漂亮的Soup將復雜的HTML文檔轉換成復雜的樹形結構。每個節點都是壹個Python對象,所有對象都可以分為四種類型:標簽、可導航字符串、漂亮的湯和註釋。接下來用下面的文檔來解釋。
可以看到A點只返回第壹個。如果需要遍歷所有的,就需要使用find_all('a ')。
標簽有許多屬性,其中最重要的兩個是名稱和屬性。Name壹般返回標簽本身(soup返回文檔)。請註意,tag屬性的操作方式與字典相同。
上面提到的節點選擇可以直接使用標簽,比如
。children是壹個llist生成器,可以遍歷子節點。
Descendants將返回所有後代節點,並比較子節點和後代節點之間的輸出差異。