Beautiful Soup 用法:

(1) 前面我们爬取一个网页,都是使用正则表达式来提取想要的信息,但是这种方式比较复杂,一旦有一个地方写错,就匹配不出来了,因此我们可以使用 Beautiful Soup 来进行提取
(2) Beautiful Soup 就是 Python 的一个 HTML 或 XML 的解析库,可以用它来方便地从网页中提取数据,我们可以通过 pip 来安装 Beautiful Soup:pip3 install beautifulsoup4

import re
from bs4 import BeautifulSoup html = '''
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<p id="username">This is your username</p>
<p id="password">This is your password</p>
</body>
</html>
''' soup = BeautifulSoup(html, 'lxml') # 初始化一个BeautifulSoup对象,接收一个HTML文本和'lxml'解析器作为参数,lxml解析器用于解析HTML或XML文档 result = soup.title # 表示提取<title>节点,结果为:<title>首页</title>
result = soup.title.name # 表示提取<title>节点的名字,结果为:title
result = soup.title.string # 表示提取<title>节点的文本内容,结果为:首页
result = soup.head.title # 表示提取<head>节点下的<title>节点,结果为:<title>首页</title>
result = soup.p.attrs # 表示提取<p>节点的所有属性,结果为:{'id': 'username'}
result = soup.p.attrs['id'] # 表示提取<p>节点的属性为id的值,结果为:username
result = soup.body.contents # 表示提取<body>节点包含的所有内容,结果为:['\n', <p id="username">This is your username</p>, '\n', <p id="password">This is your password</p>, '\n']
result = soup.body.children # 表示提取<body>节点包含的所有内容,结果返回一个生成器,内容跟contents的内容一样,只不过我们要用for循环去遍历出来
result = soup.p.parent # 表示提取<p>节点的父节点的内容,结果为:<body>....</body> result = soup.find_all(name='head') # 根据节点名来提取所有节点,结果为:[<head><meta charset="utf-8"/><title>首页</title></head>]
result = soup.find_all(attrs={'id': 'username'}) # 根据属性值来提取所有节点,结果为:[<p id="username">This is your username</p>]
result = soup.find_all(text=re.compile('your')) # 根据文本内容来提取所有节点,结果为:['This is your username', 'This is your password']
result = soup.find_all(name='head') # find_all()用于提取所有节点,find()用于提取匹配到的第一个节点
result = soup.select('title, #username') # select()可以使用CSS选择器进行提取,关于CSS选择器参考:https://www.cnblogs.com/pzk7788/p/10530050.html

使用 Beautiful Soup的更多相关文章

  1. 使用Beautiful Soup编写一个爬虫 系列随笔汇总

    这几篇博文只是为了记录学习Beautiful Soup的过程,不仅方便自己以后查看,也许能帮到同样在学习这个技术的朋友.通过学习Beautiful Soup基础知识 完成了一个简单的爬虫服务:从all ...

  2. 网络爬虫: 从allitebooks.com抓取书籍信息并从amazon.com抓取价格(1): 基础知识Beautiful Soup

    开始学习网络数据挖掘方面的知识,首先从Beautiful Soup入手(Beautiful Soup是一个Python库,功能是从HTML和XML中解析数据),打算以三篇博文纪录学习Beautiful ...

  3. Python爬虫学习(11):Beautiful Soup的使用

    之前我们从网页中提取重要信息主要是通过自己编写正则表达式完成的,但是如果你觉得正则表达式很好写的话,那你估计不是地球人了,而且很容易出问题.下边要介绍的Beautiful Soup就可以帮你简化这些操 ...

  4. 推荐一些python Beautiful Soup学习网址

    前言:这几天忙着写分析报告,实在没精力去研究django,虽然抽时间去看了几遍中文文档,还是等实际实践后写几篇操作文章吧! 正文:以下是本人前段时间学习bs4库找的一些网址,在学习的可以参考下,有点多 ...

  5. 错误 You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work

    Win  10    下python3.6 使用Beautiful Soup  4错误 You are trying to run the Python 2 version of Beautiful ...

  6. Python学习笔记之Beautiful Soup

    如何在Python3.x中使用Beautiful Soup 1.BeautifulSoup中文文档:http://www.crummy.com/software/BeautifulSoup/bs3/d ...

  7. Python Beautiful Soup学习之HTML标签补全功能

    Beautiful Soup是一个非常流行的Python模块.该模块可以解析网页,并提供定位内容的便捷接口. 使用下面两个命令安装: pip install beautifulsoup4 或者 sud ...

  8. 转:Beautiful Soup

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

  9. Beautiful Soup教程 转

    Python中使用Beautiful Soup库的超详细教程 转 http://www.jb51.net/article/65287.htm 作者:崔庆才 字体:[增加 减小] 类型:转载 时间:20 ...

  10. Beautiful Soup第三方爬虫插件

    什么是BeautifulSoup? Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree). 它提供简单又常用的 ...

随机推荐

  1. USB学习笔记连载(十二):USB描述符

    USB设备是端口,接口,配置的集合,USB协议是以各种USB描述符来表征USB设备的功能.计算机通过这些描述符来获得USB设备的功能. USB描述符包括: USB标准设备描述符,USB集线器描述符.H ...

  2. android地址位置

    有精度纬度确定地理位置 latitude: 23.1352888---longitude: 113.3297445 调用Google API接口: URL: http://maps.google.cn ...

  3. BitSet 是个好东西

    顾名思义,就是位集合(bit set),是从JDK 1.0就出现的东西,后面的版本又慢慢强化. 我们说学习一样东西,最好是场景驱动 - 要考虑它的使用场景,这样才有意义. 那么,BitSet的应用场景 ...

  4. BIO、NIO、AIO系列二:Netty

    一.概述 Netty是一个Java的开源框架.提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. Netty是一个NIO客户端,服务端框架.允许快速简 ...

  5. PLSQL Developer删除奇葩表出现异常ORA-00942: 表或试图不存在

    简单描述一下问题:发现数据库里有两个名称相同的表,不同的是PLSQL Developer里一个表名显示是大写,而另一个表名显示是小写 一般情况下,无论建表语句是大写,还是小写,因Oracle是区分大小 ...

  6. 每天一个linux命令:cat 命令

    cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. 1.命令格式: cat [选项] [文件] ...

  7. winform程序开机自动启动

    app.manifest <requestedExecutionLevel level="requireAdministrator" uiAccess="false ...

  8. linux内置软件安装命令

    yum -y install epel-release

  9. shell脚本重启tomcat

    1. 新建shell空脚本文件,如 /home/tr.sh,并设置权限 # chmod 750 /home/tr.sh 2. 设置文件形式: # sed -e 's/\^M//g' /home/tr. ...

  10. CentOS7 防火墙配置(关闭)

    CentOS7 的防火墙配置跟曾经版本号有非常大差别,经过大量尝试,最终找到解决这个问题的关键 CentOS7这个版本号的防火墙默认使用的是firewall.与之前的版本号使用iptables不一样. ...