Python - 读取 HTML 页面
名为 beautifulsoup 的库。使用此库,我们可以搜索 html 标签的值并获取特定数据,例如页面标题和页面中的标题列表。
安装 Beautifulsoup
使用 Anaconda 包管理器安装所需的包及其依赖包。
conda install Beaustifulsoap
读取 HTML 文件
在下面的示例中,我们向要加载到 python 环境中的 url 发出请求。然后使用 html 解析器参数 读取整个 html 文件。接下来,我们打印 html 页面的前几行。
import urllib2 from bs4 import BeautifulSoup # Fetch the html file response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm') html_doc = response.read() # 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 urllib2 from bs4 import BeautifulSoup response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm') html_doc = response.read() soup = BeautifulSoup(html_doc, 'html.parser') print (soup.title) print(soup.title.string) print(soup.a.string) print(soup.b.string)
当我们执行上述代码时,它会产生以下结果。
Python Overview Python Overview None Python is Interpreted
提取所有标签
我们可以提取标签使用以下代码从标签的所有实例中获取值。
import urllib2 from bs4 import BeautifulSoup response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm') html_doc = response.read() soup = BeautifulSoup(html_doc, 'html.parser') for x in soup.find_all('b'): print(x.string)
当我们执行上述代码时,它会产生以下结果。
Python is Interpreted Python is Interactive Python is Object-Oriented Python is a Beginner's Language Easy-to-learn Easy-to-read Easy-to-maintain A broad standard library Interactive Mode Portable Extendable Databases GUI Programming Scalable