Html 簡單解析
阿新 • • 發佈:2018-11-16
1. Xpath
''' xpath 比 BeautifulSoup 快 nodename 選取此節點的所有子節點。 / 從根節點選取。 // 從匹配選擇的當前節點選擇文件中的節點,而不考慮它們的位置。 . 選取當前節點。 .. 選取當前節點的父節點。 @ 選取屬性 * 匹配任何元素節點。 @* 匹配任何屬性節點。 node() 配任何型別的節點 ''' xpath 簡單語法示例 //p[@class="story"] 全範圍找 屬性為story的p標籤 //title 全範圍找 title 標籤 在裡面 加一些 簡單的判斷如 and not //li[(@_chapterid) and not(@id="video-0")] 找到某屬性,但不存在另一屬性的li標籤, from lxml import etree tree = etree.HTML(HTML內容) # 會自動補全 html 標籤 tree.xpath('語法')[0].text #取到內容 tree.xpath('語法')[0].tar # 取到節點名 tree.xpath('//title')[0].getparent().tag 父節點 tree.xpath('//a')[1].get('class') 獲取屬性 tree.xpath('//a')[1].attrib 所有屬性的字典 tree.xpath('//text()') 所有字串的列表 tree.xpath("string()") # 所有文字,字串 型別,以單一標籤為分界,如 <br/>
2.正則
正則比 xpath 和 BeautifulSoup 都快
網上 太多了,
隨便找一篇:https://www.cnblogs.com/greatfish/p/7572131.html
其中一些方法增加點印象: