Python - 数据科学之提取HTML文档
-
简述
beautifulsoup。使用该库,我们可以搜索 html 标签的值并获取特定数据,例如页面标题和页面中的标题列表。 -
安装 Beautifulsoup
使用 Anaconda 包管理器安装所需的包及其依赖包。conda install Beaustifulsoap
-
读取 HTML 文件
在下面的示例中,我们向要加载到 python 环境中的 url 发出请求。然后使用 html parser 参数读取整个 html 文件。接下来,我们打印 html 页面的前几行。import urllib2 from bs4 import BeautifulSoup # Fetch the html file response = urllib2.urlopen('http://cainiaoya.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('https://www.cainiaoya.com/python/python-jiaocheng.html') 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 None Python is Interpreted
-
提取所有标签
我们可以使用以下代码从标签的所有实例中提取标签值。import urllib2 from bs4 import BeautifulSoup response = urllib2.urlopen('http://cainiaoya.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