Python讀取HTML頁面


有一個類庫叫作beautifulsoup。 使用這個庫,可以搜尋html標籤的值,並獲取頁面標題和頁面標題列表等特定資料。

安裝Beautifulsoup
使用Anaconda軟體包管理器安裝所需的軟體包及其相關軟體包。

conda install Beaustifulsoap

讀取HTML檔案

在下面的例子中,我們請求一個url被載入到python環境中。 然後使用html parser引數來讀取整個html檔案。 接下來,列印html頁面的前幾行。

import urllib2
from bs4 import BeautifulSoup

# Fetch the html file
import urllib3
from bs4 import BeautifulSoup
# Fetch the html file
http = urllib3.PoolManager()
response = http.request('GET','/3/39/1360.htmlfeatures.html')
html_doc = response.data
# Parse the html file
soup = BeautifulSoup(html_doc, 'html.parser')
# Format the parsed html file
strhtm = soup.prettify()
# Print the first few characters
print (strhtm[:225])

當執行上面範例程式碼,得到以下輸出結果 -

<!DOCTYPE html>
<!--[if IE 8]><html class="ie ie8"> <![endif]-->
<!--[if IE 9]><html class="ie ie9"> <![endif]-->
<!--[if gt IE 9]><!-->
<html>
 <!--<![endif]-->
 <head>
  <!-- Basic -->
  <meta charset="utf-8"/>
  <title>

提取標記值

可以使用以下程式碼從標籤的第一個範例中提取標籤值。

import urllib3
from bs4 import BeautifulSoup
# Fetch the html file
http = urllib3.PoolManager()
response = http.request('GET','/3/39/1360.htmlfeatures.html')
html_doc = response.data
# Parse the html file
soup = BeautifulSoup(html_doc, 'html.parser')

print (soup.title)
print(soup.title.string)
print(soup.a.string)
print(soup.b.string)

執行上面範例程式碼,得到以下結果 -

<title>易百教學? - 專注於IT教學和範例</title>
易百教學? - 專注於IT教學和範例
None
友情連結:

提取所有標籤

可以使用以下程式碼從標籤的所有範例中提取標籤值。

import urllib3
from bs4 import BeautifulSoup
# Fetch the html file
http = urllib3.PoolManager()
response = http.request('GET','/3/39/1360.htmlfeatures.html')
html_doc = response.data
# Parse the html file
soup = BeautifulSoup(html_doc, 'html.parser')


for x in soup.find_all('h1'): 
    print(x.string)

執行上面範例程式碼,得到以下結果 -

None
Python功能特點