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','http://www.yiibai.com/python/features.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','http://www.yiibai.com/python/features.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','https://www.yiibai.com/python/features.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功能特點