標籤:python 網頁解析
1. 理解網頁上的資料
- 網頁上的資料主要有:
- 需要一個接受資料並解析的機制
- 需要一個產生資料並發送的機制
2. 解析HTML
- 層次化的資料
- 有多個解析HTML的第三方庫,例如:LXML,BeautifulSoup,HTMLParser等等。
- 解析HTML所面臨的問題:
2.1 BeautifulSoup
BeautifulSoup第三方庫有以下特點:
- 容易使用。
- 版本4允許使用lxml和html5lib,可以更好的處理不規範的HTML。
- 在處理編碼方面也比較有效。
下面是解析方法及優缺點的一個對比:
3 程式碼範例
從終端進入python環境,按照以下方式進行實驗。如果沒有bs4庫的話,可以使用以下命令(Ubuntu下)進行安裝:
sudo pip install beautifulsoup4
>>>
>>> from bs4 import BeautifulSoup
>>>
>>> import urllib
>>> html = urllib.urlopen(“http://192.168.1.33/temwet/index.html“)
>>>
>>> html
addinfourl at 164618764 whose fp = socket._fileobject object at 0x9cd19ac
>>> html.code
200
>>>
下面看一下網頁的原始碼:
使用BeautifulSoup進行解析:
使用bt = BeautifulSoup(html.read(),"lxml")語句對接收到的html進行解析,bt.title, bt.meta, bt.title.string, bt.find_all(‘meta‘)進行元素的尋找。對尋找到的多個結果,可以以數組的形式儲存和訪問。
如果想提取網頁中含有的超連結呢?我們只需要尋找到”a”標籤,並將其提取出來即可。links = bt.find_all(‘a‘) 可將網頁中所有的超連結儲存在links中,如果len(links)等於0的話就是網頁中沒有超連結,否則直接以數組的方式訪問即可。
python 解析HTML