python 解析HTML

來源:互聯網
上載者:User

標籤:python   網頁解析   

1. 理解網頁上的資料
  • 網頁上的資料主要有:
    • HTML
    • XHTML
    • XML
    • JSON
  • 需要一個接受資料並解析的機制
  • 需要一個產生資料並發送的機制
2. 解析HTML
  • 層次化的資料
  • 有多個解析HTML的第三方庫,例如:LXML,BeautifulSoup,HTMLParser等等。
  • 解析HTML所面臨的問題:
    • 沒有統一的標準。
    • 很多網頁並沒有遵循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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.