Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间。
Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中一个是 lxml 。
另一个可供选择的解析器是纯Python实现的 html5lib , html5lib的解析方式与浏览器相同。

Windows平台 + Python3.5

安装BeautifulSoup4

方法一:打开cmd,运行pip install BeautifulSoup4
如上图所示,由于我已经安装过了。可以使用 --upgrade来升级为最新版本。
 
方法二:去官网BeautifulSoup4源码下载 -- 戳我吧!下载源码,编译运行。
 
至此,便安装完毕。
验证成功,编译一个.py文件,输入from bs4 import BeautifulSoup4,不会报错即代表安装成功。
 

安装html5lib

第二步,我们安装网页文件解析器htm5lib,只需直接运行pip install html5lib即可:
 

安装lxml

在Windows下,安装lxml费了一点劲儿,不能直接通过命令成功安装。我们需要去官方网站下载与平台完全一致的版本,手动安装。
首先,查看我们的平台依赖的工具版本:
 
然后,去官网下载对应的.whl文件。lxml 官方下载链接,请猛戳我~~~
Ctrl + F,输入lxml,找到下面这段:
Lxml, a binding for the libxml2 and libxslt libraries.
lxml‑3.4.4‑cp27‑none‑win32.whl
lxml‑3.4.4‑cp27‑none‑win_amd64.whl
lxml‑3.4.4‑cp33‑none‑win32.whl
lxml‑3.4.4‑cp33‑none‑win_amd64.whl
lxml‑3.4.4‑cp34‑none‑win32.whl
lxml‑3.4.4‑cp34‑none‑win_amd64.whl
lxml‑3.4.4‑cp35‑none‑win32.whl
lxml‑3.4.4‑cp35‑none‑win_amd64.whl
cp后面是Python的版本号,27表示2.7,根据你的Python版本选择下载。

最后进行安装,打开cmd,先运行pip install wheel安装wheel工具,做好准备工作。
接着运行pip install *.whl文件,我的对应版本为lxml-3.6.0-cp35-cp35m-win_amd64.whl即可成功安装lxml解析器。
 
至此,三个工具都安装完毕。
对于Linux平台下,安装就很简单了,直接利用三个命令即可完成:
  • pip install BeautifulSoup4 或 easy_install BeautifulSoup4
  • pip install html5lib
  • pip install lxml
 

使用BeautifulSoup

我们编辑一段html文档,利用BeautifulSoup库进行解析:
  1.  
    html = """
  2.  
    <html><head><title>The Dormouse's story</title></head>
  3.  
    <body>
  4.  
    <p class="title"><b>The Dormouse's story</b></p>
  5.  
     
  6.  
    <p class="story">Once upon a time there were three little sisters; and their names were
  7.  
    <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>,
  8.  
    <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
  9.  
    <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
  10.  
    and they lived at the bottom of a well.</p>
  11.  
     
  12.  
    <p class="story">...</p>
  13.  
    """
  14.  
     
  15.  
    from bs4 import BeautifulSoup
  16.  
     
  17.  
    #添加一个解析器
  18.  
    soup = BeautifulSoup(html,'html5lib')
  19.  
    print(soup.title)
  20.  
    print(soup.title.name)
  21.  
    print(soup.title.text)
  22.  
    print(soup.body)
  23.  
     
  24.  
    #从文档中找到所有<a>标签的内容
  25.  
    for link in soup.find_all('a'):
  26.  
    print(link.get('href'))
  27.  
     
  28.  
     
  29.  
    #从文档中找到所有文字内容
  30.  
    print(soup.get_text())

注意:

在声明BeautifulSoup对象的时候要明确解析器 soup = BeautifulSoup(html,'html5lib'),否则写为 soup = BeautifulSoup(html) 会有警告。
 

运行上述代码:
我们发现,BeautifulSoup可以十分方便的提取Html的结构化数据。这就为我们解析网页文件内容,爬取目标元素提供了极大的帮助。
 
这只是一个小小的例子,BeautifulSoup库的功能十分强大,赶紧去官方文档学习吧~

配置BeautifulSoup4+lxml+html5lib的更多相关文章

  1. Python爬虫beautifulsoup4常用的解析方法总结

    摘要 如何用beautifulsoup4解析各种情况的网页 beautifulsoup4的使用 关于beautifulsoup4,官网已经讲的很详细了,我这里就把一些常用的解析方法做个总结,方便查阅. ...

  2. Python爬虫beautifulsoup4常用的解析方法总结(新手必看)

    今天小编就为大家分享一篇关于Python爬虫beautifulsoup4常用的解析方法总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧摘要 如何用beau ...

  3. 爬虫基础以及 re,BeatifulSoup,requests模块使用

    爬虫基础以及BeatifulSoup模块使用 爬虫的定义:向网站发起请求,获取资源后分析并提取有用数据的程序 爬虫的流程 发送请求 ---> request 获取响应内容 ---> res ...

  4. 【学习笔记】PYTHON网络爬虫与信息提取(北理工 嵩天)

    学习目的:掌握定向网络数据爬取和网页解析的基本能力the Website is the API- 1 python ide 文本ide:IDLE,Sublime    Text集成ide:Pychar ...

  5. Python网络爬虫与信息提取笔记

    直接复制粘贴笔记发现有问题 文档下载地址//download.csdn.net/download/hide_on_rush/12266493 掌握定向网络数据爬取和网页解析的基本能力常用的 Pytho ...

  6. 1 python大数据挖掘系列之基础知识入门

    preface Python在大数据行业非常火爆近两年,as a pythonic,所以也得涉足下大数据分析,下面就聊聊它们. Python数据分析与挖掘技术概述 所谓数据分析,即对已知的数据进行分析 ...

  7. 转:Beautiful Soup

    Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时 ...

  8. 【bs4】安装beautifulsoup

    Debian/Ubuntu,install $ apt-get install python-bs4 easy_install/pip $ easy_install beautifulsoup4 $ ...

  9. requests和BeautifulSoup

    一:Requests库 Requests is an elegant and simple HTTP library for Python, built for human beings. 1.安装 ...

随机推荐

  1. iOS testflight 使用说明

    一.告知开发者苹果手机的账户邮箱 1.通过任何形式告知即可 2.下载testflight 二.开发者发送激活邮件到测试者的账户邮箱 1.进入邮箱查看邮件点击 Accept invitation 进行下 ...

  2. 关于#error

    很简单的一个东西,但是感觉使用价值没有太大.实现了以下,结果如下: 执行到#error语句的时候直接停止编译,在下面输出设定好的错误信息. 来自为知笔记(Wiz)

  3. (二)react-native开发系列之windows开发环境配置

    之前写了react-native在mac上得环境搭建,但是如果只开发android的话,只要用windows系统就可以了,下面就来说下react-native的windows开发环境配置. 1.下载配 ...

  4. 【TestNG】使用代码方式调用TestNG用例执行

    TestNG的用例除了直接运行之外,还可以使用代码来调用,这样做的好处在于我们可以将其嵌入其他代码中,来执行这些TestNG用例,方法如下: 1.直接调用用例类 范例:定义了两个测试用例类为Depen ...

  5. Django 中使用权限认证

    权限认证 权限概念 """ 在实际开发中,项目中都有后台运营站点,运营站点里面会存在多个管理员, 那么不同的管理员会具备不同的任务和能力,那么要实现这样的管理员功能,那么 ...

  6. Java学习笔记——第2篇

    Java程序的基本规则 Java程序的组织形式:纯粹的面向对象的程序设计语言,所以Java程序必须以类的形式存在,类是Java程序的最小程序单位,Java程序不允许可执行语句.方法等成分独立存在,所有 ...

  7. Codeforces #367 (Div. 2) D. Vasiliy's Multiset (trie 树)

    http://codeforces.com/group/1EzrFFyOc0/contest/706/problem/D 题目:就是有3种操作 + x向集合里添加 x - x 删除x元素,(保证存在 ...

  8. Stock Exchange (最大上升子子串)

    /* 题意: 给定L个整数A1,A2,...,An,按照从左到右的顺序选出尽量多的整数, 组成一个上升序列(子序列可以理解为:删除0个或者多个数,其他的数的吮吸不变). 例如,1,6,2,3,7,5, ...

  9. 稀疏矩阵在Python中的表示方法

    对于一个矩阵而言,若数值为零的元素远远多于非零元素的个数,且非零元素分布没有规律时,这样的矩阵被称作稀疏矩阵:与之相反,若非零元素数目占据绝大多数时,这样的矩阵被称作稠密矩阵. 稀疏矩阵在工程应用中经 ...

  10. vue tslint报错: Calls to 'console.log' are not allowed

    使用Vue CLI 3 的 vue create 创建vue+ts 项目,使用默认配置, 控制台报警告Calls to 'console.log' are not allowed,解决: 在tslin ...