Python Beautiful Soup簡介
Beautiful Soup簡介
Beautiful Soup 是一個可以從HTML或XML檔案中提取資料的Python庫.它能夠通過你喜歡的轉換器實現慣用的文件導航,查詢,修改文件的方式.
BeautifulSoup
BeautifulSoup 物件表示的是一個文件的全部內容.大部分時候,可以把它當作 Tag 物件,它支援 遍歷文件樹 和 搜尋文件樹 中描述的大部分的方法.
因為 BeautifulSoup 物件並不是真正的HTML或XML的tag,所以它沒有name和attribute屬性.但有時檢視它的 .name 屬性是很方便的,所以 BeautifulSoup 物件包含了一個值為 “[document]” 的特殊屬性 .name
文件解析錯誤
文件解析錯誤有兩種.一種是崩潰,Beautiful Soup嘗試解析一段文件結果卻拋除了異常,通常是 HTMLParser.HTMLParseError .還有一種異常情況,是Beautiful Soup解析後的文件樹看起來與原來的內容相差很多.
這些錯誤幾乎都不是Beautiful Soup的原因,這不會是因為Beautiful Soup得程式碼寫的太優秀,而是因為Beautiful Soup沒有包含任何文件解析程式碼.異常產生自被依賴的解析器,如果解析器不能很好的解析出當前的文件,那麼最好的辦法是換一個解析器.
最常見的解析錯誤是 HTMLParser.HTMLParseError: malformed start tag 和 HTMLParser.HTMLParseError: bad end tag .這都是由Python內建的解析器引起的,解決方法是 安裝lxml或html5lib
最常見的異常現象是當前文件找不到指定的Tag,而這個Tag光是用眼睛就足夠發現的了. find_all() 方法返回 [] ,而 find() 方法返回 None .這是Python內建解析器的又一個問題: 解析器會跳過那些它不知道的tag.解決方法還是 安裝lxml或html5lib
示例程式碼
# -*- coding:UTF-8 -*- #!/usr/bin/python3 import requests from bs4 import BeautifulSoup r = requests.get('http://www.163.com/') soup = BeautifulSoup(r.text) print("---------------------------------") print(soup.title) print("---------------------------------") print(soup.title.name) print("---------------------------------") print(soup.title.string) print("---------------------------------") print(soup.title.parent.name) print("---------------------------------") print(soup.p) print("---------------------------------") print(soup.p['class']) print("---------------------------------") print(soup.a) print("---------------------------------") for link in soup.find_all('a'): print(link.get('href')) print("---------------------------------") print(soup.body.text) print("---------------------------------") 輸出結果: ---------------------------------網易 --------------------------------- title --------------------------------- 網易 --------------------------------- head ---------------------------------一週圖片精選:2015.3.7-3.13
--------------------------------- ['pos-abs'] --------------------------------- 應用 --------------------------------- http://www.163.com/#f=topnav http://m.163.com/newsapp/#f=topnav http://music.163.com/#f=topnav http://yuedu.163.com/#f=topnav http://note.youdao.com/#f=topnav http://love.163.com/ http://open.163.com/#f=topnav http://caipiao.163.com/mobile/client_cp.jsp#from=yingyong http://cidian.youdao.com/?vendor=topnav http://mail.163.com/client/dl.html?from=mail46 http://www.lofter.com/?act=qb163rk_20141031_01 ··· --------------------------------- 應用 網易新聞 網易雲音樂 網易雲閱讀 有道雲筆記 ··· ---------------------------------
更多介紹可參考官方文件
整理自網路
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29733787/viewspace-1460106/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Beautiful Soup學習
- 使用 Beautiful Soup 在 Python 中抓取網頁Python網頁
- Python Beautiful Soup+requests實現爬蟲Python爬蟲
- Python網頁抓取工具Beautiful Soup面面觀!Python網頁
- Beautiful Soup 學習手冊
- Python爬蟲學習(11):Beautiful Soup的使用Python爬蟲
- 淺析Beautiful Soup庫和Lxml庫XML
- python爬蟲之Beautiful Soup基礎知識+例項Python爬蟲
- JB的Python之旅-爬蟲篇--urllib和Beautiful SoupPython爬蟲
- Beautiful Soup庫的使用(學習筆記)筆記
- Beautiful Soup在爬蟲中的基本使用語法爬蟲
- 一起學爬蟲——使用Beautiful Soup爬取網頁爬蟲網頁
- 【Python3網路爬蟲開發實戰】4-解析庫的使用-2 使用Beautiful SoupPython爬蟲
- Python 從底層結構聊 Beautiful Soup 4(內建豆瓣最新電影排行榜爬取案例)Python
- Python簡介Python
- python列表簡介Python
- python wsgi 簡介Python
- Python簡單介紹Python
- python教程(一)·簡介Python
- Python Selenium簡介Python
- 圖解python | 簡介圖解Python
- python中pickle簡介Python
- Python 3: 加密簡介Python加密
- Python PyQt5簡介PythonQT
- 《Python機器學習實踐》簡介Python機器學習
- Day01——Python簡介Python
- Python 效能分析工具簡介Python
- Python 描述符簡介Python
- Python中setuptools的簡介Python
- python技術簡介(三)Python
- 繪圖: Python matplotlib簡介繪圖Python
- python元組與字典簡介Python
- phyon快速入門(python簡介)Python
- python函式作用域簡介Python函式
- 簡單介紹python process模組Python
- 2.1Python語言簡介Python
- Python scrapy爬蟲框架簡介Python爬蟲框架
- python shutil模組簡單介紹Python