python中用beautifulSoup+urlib2 安裝、抓取和解析網頁,以及解析shtml

安裝 Beautiful Soup

若是你用的是新版的Debain或ubuntu,那麼能夠經過系統的軟件包管理來安裝:html

$ apt-get install Python-bs4html5

Beautiful Soup 4 經過PyPi發佈,因此若是你沒法使用系統包管理安裝,那麼也能夠經過 easy_install 或 pip 來安裝.包的名字是beautifulsoup4 ,這個包兼容Python2和Python3.web

$ easy_install beautifulsoup4ubuntu

$ pip install beautifulsoup4瀏覽器

(在PyPi中還有一個名字是 BeautifulSoup 的包,但那可能不是你想要的,那是 Beautiful Soup3 的發佈版本,由於不少項目還在使用BS3, 因此 BeautifulSoup 包依然有效.可是若是你在編寫新項目,那麼你應該安裝的 beautifulsoup4 )google

若是你沒有安裝 easy_install 或 pip ,那你也能夠 下載BS4的源碼 ,而後經過setup.py來安裝.url

$ Python setup.py installspa

若是上述安裝方法都行不通,Beautiful Soup的發佈協議容許你將BS4的代碼打包在你的項目中,這樣無須安裝便可使用.操作系統

做者在Python2.7和Python3.2的版本下開發Beautiful Soup, 理論上Beautiful Soup應該在全部當前的Python版本中正常工做code

安裝解析器

Beautiful Soup支持Python標準庫中的HTML解析器,還支持一些第三方的解析器,其中一個是 lxml .根據操做系統不一樣,能夠選擇下列方法來安裝lxml:

$ apt-get install Python-lxml

$ easy_install lxml

$ pip install lxml

另外一個可供選擇的解析器是純Python實現的 html5lib , html5lib的解析方式與瀏覽器相同,能夠選擇下列方法來安裝html5lib:

$ apt-get install Python-html5lib

$ easy_install html5lib

$ pip install html5lib

解析通常的網頁(html),直接:

from bs4 import  BeautifulSoup,BeautifulStoneSoup

import urllib2

import html5lib

url_header = "xxxxxx"

Webpage = urllib2.urlopen(url_header).read()

soup = BeautifulSoup(webpage)

 print soup.prettify( )


可是在解析shtml的網頁的時候,beautifulsoup模塊支持的解釋器有lxml,html5lib和HTMLparse三種,只有html5lib支持解析shtml,因此在生成beautifulsoup對象的時候,要加上一個參數:soup = BeautifulSoup(Webpage,"html5lib"),否則的話,當解析shtml頁面的時候,<body> </body>標籤裏面的內容是沒法解析的。

更多詳情請參考:BeautifulSoup 4.2.0官方檔http://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

相關文章
相關標籤/搜索