【学习笔记】Python - Beautiful Soup
Beautiful Soup
Beautiful Soup是一個模塊,用于從HTML頁面中提取信息(類似于正則表達式的功能)。Beautiful Soup的模塊名稱是“bs4”(表示Beautiful Soup的第4版)。
安裝Beautiful Soup
命令:pip install beautifulsoup4
導入:import bs4
使用Beautiful Soup
1、根據HTML創建一個Beautiful Soup對象
bs4.BeautifulSoup()函數調用時需要一個字符串,其中包含了將要解析的HTML文件。
bs4.BeautifulSoup()函數返回一個BeautifulSoup對象。
當然bs4.BeautifulSoup()函數也可以從本地讀入HTML文件,前提是在本地保存了HTML文件,它會返回一個BeautifulSoup對象。
2、使用select()方法尋找元素
選擇器就好比正則表達式,它們指定了要尋找的模式,就可以取得Web頁面元素。
| 傳遞給select()方法的選擇器 | 將要匹配... |
| soup.select(‘div’) | 所有名為<div>的元素 |
| soup.select(‘#author’) | 帶有id屬性為author的元素 |
| soup.select(‘.notice’) | 所有使用CSS class屬性名為notice的元素 |
| soup.select(‘div span’) | 所以在<div>元素之內的<span>元素 |
| soup.select(‘div > span’) | 所有直接在<div>元素之內的<span>元素,中間沒有其他元素 |
| soup.select(‘input[name]’) | 所有名為<input>,并有一個name屬性,其值無所謂的元素 |
| soup.select(‘input[type=”button”]’) | 所有名為<input>,并有一個type屬性,其值為button的元素 |
不同的選擇器模式可以組合起來,形成更復雜的匹配。
比如soup.select(‘p#author’)將匹配在<p>元素內所有id屬性為author的元素。
select()方法將返回一個Tag對象的列表,這是Beautiful Soup表示一個HTML元素的方式。Tag值可以傳遞給str()函數,顯示它們代表的HTML標簽。Tag值也可以有attrs屬性,它將該Tag的所有HTML屬性作為一個字典。
上面的代碼將所有帶有id = “su”的元素都找出來了,返回一個列表,列表中只有一個Tag對象(僅一次匹配),getText()方法返回元素內部文本或者內部HTML(即開始/結束標簽之間的內容),最后attrs屬性返回了一個字典。
3、通過元素獲取數據
Tag對象的get()方法可以很容易從元素中獲取屬性值,向該方法傳入一個屬性名稱的字符串,它將返回該屬性的值。
總結
以上是生活随笔為你收集整理的【学习笔记】Python - Beautiful Soup的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【学习笔记】Python - NumPy
- 下一篇: 【学习笔记】Python - Lxml