BeautifulSoup 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
BeautifulSoup 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
BeautifulSoup 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
BeautifulSoup 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
BeautifulSoup 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT
开发语言 Python
操作系统 跨平台
软件类型 开源软件
所属分类 Web应用开发HTML解析器
开源组织
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 2010-01-19

软件简介

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

使用BeautifulSoup解析这段代码,能够得到一个 BeautifulSoup 的对象,并能按照标准的缩进格式的结构输出:

from bs4 import BeautifulSoup
soup = BeautifulSoup(html_doc, 'html.parser')

print(soup.prettify())
# <html>
#  <head>
#   <title>
#    The Dormouse's story
#   </title>
#  </head>
#  <body>
#   <p class="title">
#    <b>
#     The Dormouse's story
#    </b>
#   </p>
#   <p class="story">
#    Once upon a time there were three little sisters; and their names were
#    <a class="sister" href="http://example.com/elsie" id="link1">
#     Elsie
#    </a>
#    ,
#    <a class="sister" href="http://example.com/lacie" id="link2">
#     Lacie
#    </a>
#    and
#    <a class="sister" href="http://example.com/tillie" id="link2">
#     Tillie
#    </a>
#    ; and they lived at the bottom of a well.
#   </p>
#   <p class="story">
#    ...
#   </p>
#  </body>
# </html>
soup.title
# <title>The Dormouse's story</title>

soup.title.name
# u'title'

soup.title.string
# u'The Dormouse's story'

soup.title.parent.name
# u'head'

soup.p
# <p class="title"><b>The Dormouse's story</b></p>

soup.p['class']
# u'title'

soup.a
# <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>

soup.find_all('a')
# [<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
#  <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>,
#  <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]

soup.find(id="link3")
# <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>

安装:

如果你用的是新版的Debain或ubuntu,那么可以通过系统的软件包管理来安装:

$ apt-get install Python-bs4

Beautiful Soup 4 通过PyPi发布,所以如果你无法使用系统包管理安装,那么也可以通过 easy_install 或 pip 来安装.包的名字是 beautifulsoup4 ,这个包兼容Python2和Python3.

$ easy_install beautifulsoup4

$ pip install beautifulsoup4

(在PyPi中还有一个名字是 BeautifulSoup 的包,但那可能不是你想要的,那是 Beautiful Soup3 的发布版本,因为很多项目还在使用BS3, 所以 BeautifulSoup 包依然有效.但是如果你在编写新项目,那么你应该安装的 beautifulsoup4 )

如果你没有安装 easy_install 或 pip ,那你也可以 下载BS4的源码 ,然后通过setup.py来安装.

$ Python setup.py install

如果上述安装方法都行不通,Beautiful Soup的发布协议允许你将BS4的代码打包在你的项目中,这样无须安装即可使用.

作者在Python2.7和Python3.2的版本下开发Beautiful Soup, 理论上Beautiful Soup应该在所有当前的Python版本中正常工作

展开阅读全文

评论 (1)

加载中
解析包含中文的页面时,有的页面编码正常,有的页面乱码,这是什么问题呢? Beautiful Soup
2014/05/29 21:24
回复
举报
更多评论
暂无内容
发表了博客
2019/05/14 18:51

BeautifulSoup

阅读目录 一 什么是BeautifulSoup? 二 为什么要用BeautifulSoup? 三 安装 四 怎么用BeautifulSoup 五 自动登录抽屉新热榜并点赞与评论 一 什么是BeautifulSoup   简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。 官方解释如下:   Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以...

0
0
发表了博客
2019/04/28 21:36

BeautifulSoup

BeautifulSoup 解析库 html = ''' <html><head><title>The Dormouse's story</title></head> <body> <p class=\"title\" name=\"dromouse\"><b>The Dormouse's story</b></p>\n", <p class=\"story\">Once upon a time there were three little sisters; and their names were <a href=\"http://example.com/elsie\" class=\"sister\" id=\"link1\"><!-- Elsie --></a>, <a href=\"http://exampl...

0
0
发表了博客
2018/03/11 09:10

02:BeautifulSoup

1.1 BeautifulSoup介绍   1、BeautifulSoup作用       1、BeautifulSoup是一个模块,该模块用于接收一个HTML或XML字符串,然后将其进行格式化       2、之后遍可以使用他提供的方法进行快速查找指定元素,从而使得在HTML或XML中查找指定元素变得简单   2、安装       pip3 install beautifulsoup4       pip install lxml #lxml是一个比beautifulsoup4更强大的库(居然直接用pip就安装成功了)   ...

0
0
发表于AI & 大数据专区
2019/10/30 08:46

BeautifulSoup详解

## 一、BeautifulSoup构建 ### 1.1 通过字符串构建 ```py from bs4 import BeautifulSoup html = """ The Dormouse's story Once upon a time there were three little sisters; and their names were """ soup = BeautifulSoup(html, 'html.parser') print(soup.prettify()) ``` ### 1.2 从文件加载 ```py from bs4 import BeautifulSoup with open(r"F:\tmp\etree.html") as fp: soup = BeautifulSoup(fp,"lxml") print(soup....

0
0
发表了博客
2019/03/28 13:26

beautifulsoup

1.安装模块 使用国内镜像源安装 pip install beautifulsoup4 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com pip install requests -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com 2.Demo import requests from bs4 import BeautifulSoup def get_images(page): response = requests.get(f'https://www.ishsh.com/gaoqing/page/{page}', verify=False) data = re...

0
0
发表于大前端专区
2018/06/04 12:42

BeautifulSoup 使用

原文链接: BeautifulSoup 使用 上一篇: Python networkx 网络图绘制 下一篇: networkx 模型案例 测试页面地址 https://reeoo.com/ 下载网页 import requests url = 'https://reeoo.com/' with open('web.html', encoding='utf8', mode='w+') as f: f.write(requests.get(url).text) 构造soup对象测试输出 from bs4 import BeautifulSoup with open('web.html', encoding='utf8', mode='r') as f: soup...

0
0
2020/02/14 16:06

BeautifulSoup的使用

参考资料地址:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/#id28 练习数据准备 获取个人简书首页的html页面,并写入一个html文件中: 说明:本来想用requests获取页面的html的,但是简书的反爬机制应该比较厉害,在headers中添加浏览器信息搞不定,所以选择了用selenium+phantomJS获取页面html。 如果想用requests可以试试如下方式: BeautifulSoup学习 前面已经将一个html页面以beautifulsoup对象的格式保存在...

0
0
发表了博客
2018/06/29 18:18

BeautifulSoup---学习

BeautifulSoup 是一个可以从HTML或XML文件中提取数据的Python库,它的使用方式相对于正则来说更加的简单方便,常常能够节省我们大量的时间。 官方中文文档的:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html 以下进行一些总结。 可用的解析器   以下是主要的几种解析器: 解析器 使用方法 优势 劣势 Python标准库 BeautifulSoup(markup, "html.parser") Python的内置标准库执行速度适中文档容错能力强...

0
0
发表了博客
2018/01/19 15:59

解析库之re,Beautifulsoup

本篇导航: 介绍 基本使用 遍历文档树 搜索文档树 总结 re模块在之前的python进阶中有讲过不再做过多的阐述,本篇为BeautifulSoup库的分析 20、collections模块和re模块(正则表达式详解) 一、介绍 Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间.你可能在寻找 Beautiful Soup3 的文档,Be...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2019/12/18 11:18

python语言对html文件中信息筛选

用pycharm编程,遇到了问题: 1.想从整个html文件中筛选出Mutations(红色)之后的所有信息再进行二次筛选; 2.Mutations(红色)之后都是相同的结构<tr></tr>,通过(黑色部分)的标签筛选出文字为KILLED或者TIME_OUT的信息段; 3.对筛选出的信息段获取(蓝色)圈出的两处详细信息。

1
0
2018/12/13 16:28

爬虫 爬取饿了么数据出现问题

import requests import json import time from bs4 import BeautifulSoup import xlwt from openpyxl import Workbook #from pyExcelerator import * id_list = []#店铺的id列表 name_list = []#店铺的名称列表 address_list = []#店铺的地址列表 lat_list = []#店铺的纬度 long_list = []#店铺的经度 olt_list = []#店铺的平均送达时间 paf_list = []#店铺的配送费 phone_list = []#店铺的电话 oph_list = []#店铺的营业时间 ...

1
0
发表了问答
2016/04/08 15:43

python安装Beautifulsoup 在cmd运行 setup.py install时报错: error: package directory 'bs4' does not exist

1
0
发表了问答
2016/01/03 13:13

关于中文网页爬虫显示乱码的问题

大家好,我在爬去一个中文网页的时候碰到了乱码的问题,试了很久都没成功,请帮我看下问题出在哪里? 网址: http://www.duxieren.com/shanghaishuping/201511.shtml 编码: UTF-8 系统: windows 7 Python版本: 3 目标: 爬去文章列表 症状:能爬取,但是print出来之后全乱码,, 也尝试了了加encoding = GBK 之类的参数但是无效, 请帮我看看问题出在哪里,多谢了 代码如下 import requests, bs4 web = requests.get('http://ww...

1
0
发表了问答
2015/06/23 12:01

为什么我抓到的页面无法用BS正确提取数据啊?

我试图抓取一个人的知乎主页动态(代码如下),但采用这种方法抓取下来的页面里的</a></div>标签全部多了一个\,变成了<\/a><\/div>,并且用BS模块提取数据,输出也非常奇怪,多了许多标签,以及根本不是我想要的TAG里的文本内容,请问如何解决这个问题? # -*- coding:utf-8 –*- import sys import requests from bs4 import BeautifulSoup import re import requests reload(sys) sys.setdefaultencoding('utf8') # ----...

9
0
发表了问答
2012/11/12 21:55

Python 开发者应该知道的 7 个开发库

本文由 OSChina 译自 7 Python Libraries you should know about 在我多年的 Python 编程经历以及在 Github 上的探索漫游过程中,我发掘到一些很不错的 Python 开发包,这些包大大简化了开发过程,而本文就是为了向大家推荐这些开发包。 请注意我特别排除了像 SQLAlchemy 和 Flask 这样的库,因为其实在太优秀了,无需多提。 下面开始: 1. PyQuery (with lxml) 安装方法 pip install pyquery Python 解析 HTML 时最经常被推荐的...

46
526
发表了问答
2013/04/11 17:16

怎么使用beautifulsoup获取指定div标签内容

怎么使用beautifulsoup获取指定div标签内容,例如 html=""" <html> <body> <div class="a">....</div> <div class="b">i like it</div> </body> </html> ---------------------------- 然后代码(大概) from bs4 import BeautifulSoup soup = BeautifulSoup(html); content=soup.html.body.div ?? #这怎么用存在的class属性直接指定到该div下。...

7
0
发表了问答
2013/01/08 12:24

python BeautifulSoup怎么获取无标签文本?

<p>aaa</p>bbb <p>ccc</p>ddd 怎么获取bbb和ddd呢?

3
1
发表了问答
2013/03/02 20:49

beautifulsoup的一个灵异现象

>>> import BeautifulSoup, urllib2, re >>> html = urllib2.urlopen('http://www.billboard.com/charts/hot-100?page=1').read() >>> soup = BeautifulSoup.BeautifulSoup(html) beautifulsoup页面 >>> print str(soup) ......页面全部源码...... >>> print str(soup.find("div")) None >>> print str(soup.find("a")) None >>> print str(soup.find("title")) <title>The Hot 100 : Page 2 | Billboard</title> 为什么title...

4
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
1 评论
72 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部