一、准备环境:

1、准备测试页面test.html

<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>

test.html

2、安装相关模块

pip install bs4
pip install requests

二、beautifulsoup相关语法:

1、实例化beautifulsoup对象

from bs4 import BeautifulSoup
# 实例化BeautifulSoup对象
# 1、转化本地HTML文件
soup = BeautifulSoup(open('本地文件'), 'lxml')
# 如使用本地文件
with open('test.html',mode='r',encoding='utf-8') as f:
soup = BeautifulSoup(f,'lxml')
print(soup.a) # 打印第一个a标签的所有内容
# 2、通过requests.get或其它方式获取到的HTML数据
soup = BeautifulSoup('字符串类型或者字节类型', 'lxml')
# 如通过requests获取到的网页数据
from requests
page_html = requests.get(url='http://www.baidu.com').text
soup = BeautifulSoup(page_html, 'lxml')
print(soup.a) # 打印第一个a标签的所有内容

2、通过实例化对象获取标签,标签内容,标签属性(这里以上面准备的test.html为示例进行演示)。

import requests
from bs4 import BeautifulSoup with open('test.html',mode='r',encoding='utf-8') as f:
soup = BeautifulSoup(f,'lxml')
print(soup.title) # 打印title标签的全部内容
print(soup.a) # 打印a标签的全部内容
print(soup.a.attrs) # 打印a标签的所有属性内容
print(soup.a.attrs['href']) # 打印a标签href属性的值
print(soup.a['href']) # 也可以简写 # 打印a标签中的文本内容内容
print(soup.a.string)
print(soup.a.text)
print(soup.a.get_text())
# 需要注意的是,如果a标签中还嵌套有其它标签,soup.a.string将获取不到值返回一个None,
# 而soup.a.text和soup.a.get_text()可以获取到包括a标签在内的所有子标签中的文本内容。
# 注意:soup.tagName只定位到第一次出现的tagName标签便结束匹配 soup.find('a') # 与soup.tagName一样只匹配到第一次出现的。不同的是可以使用标签和属性进行联合查找。
print(soup.find('a',{'class':"sister",'id':'link2'})) # 根据标签和属性进行定位 find_all() # 和find的用法一样,只是返回值是一个列表,这里就不演示了 # 根据选择器进行定位
# 常见的选择器:标签选择器(a)、类选择器(.)、id选择器(#)、层级选择器
soup.select('a') # 根据标签定位到所有a标签
print(soup.select('.sister')) # 根据类名sister定位
print(soup.select('#link1')) # 根据id 进行定位
print(soup.select('p>a')) # 定位所有p标签下的a标签

数据解析模块BeautifulSoup简单使用的更多相关文章

  1. X2.5 添加自定义数据调用模块(简单方法)

    Discuz!X系列的diy功能还是相当不错的,在对其进行二次开发的过程中,或许需要加入新的数据调用模块,这样可以使你开发的功能模块也像原来的模块一样,只需要点点鼠标,填写一些简单的信息,就可以在各个 ...

  2. python爬虫数据解析之BeautifulSoup

    BeautifulSoup是一个可以从HTML或者XML文件中提取数据的python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式. BeautfulSoup是python爬虫三 ...

  3. iOS开发——数据解析Swift篇&简单json数据处理

    简单json数据处理 //loadWeather var url = NSURL(string: "http://www.weather.com.cn/adat/sk/101240701.h ...

  4. 070.Python聚焦爬虫数据解析

    一 聚焦爬虫数据解析 1.1 基本介绍 聚焦爬虫的编码流程 指定url 基于requests模块发起请求 获取响应对象中的数据 数据解析 进行持久化存储 如何实现数据解析 三种数据解析方式 正则表达式 ...

  5. 【爬虫入门手记03】爬虫解析利器beautifulSoup模块的基本应用

    [爬虫入门手记03]爬虫解析利器beautifulSoup模块的基本应用 1.引言 网络爬虫最终的目的就是过滤选取网络信息,因此最重要的就是解析器了,其性能的优劣直接决定这网络爬虫的速度和效率.Bea ...

  6. 【网络爬虫入门03】爬虫解析利器beautifulSoup模块的基本应用

    [网络爬虫入门03]爬虫解析利器beautifulSoup模块的基本应用   1.引言 网络爬虫最终的目的就是过滤选取网络信息,因此最重要的就是解析器了,其性能的优劣直接决定这网络爬虫的速度和效率.B ...

  7. 爬虫----爬虫解析库Beautifulsoup模块

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

  8. Request模块—数据解析工具

    一.爬虫基本步骤 指定URL信息 发起请求 获取响应数据 对响应数据进行数据解析 持久化存储 二.数据解析 1. 正则表达式 (1) 基本语法 1. 单字符: . : 除换行以外所有字符 [] :[a ...

  9. 最简单简洁高效的Json数据解析

    一.无图无真相 二.主要代码 1.导入jar包 拷贝fastjson.jar包到projectlibs包下 2.封装工具类JsonUtil.java package com.example.parse ...

随机推荐

  1. RPM包安装——yum安装

    RPM包安装 yum安装 yum源文件解析 yum源文件保存在/etc/yum.repos.d/目录中,文件的扩展名一定是".repo",也就是说yum源文件配置只要是扩展名.re ...

  2. Promise简单使用,需要在ES6以上

     //Promise延时顺序执行 var waitOne = new Promise(function(resolve, reject) { setTimeout(function(){ resolv ...

  3. 解决mac睡眠唤醒/插拔之后,外接显示器无法点亮/无信号问题

    问题现象 mac盖上盖子唤醒或者里临时拔出数据线,再重新连接之后,经常出现下面问题: [系统偏好设置]-[显示器]仍可以识别外接显示器: 外接显示器会提示无信号输入 解决方法 方法一 通过[系统偏好设 ...

  4. Qt窗口退出与事件循环退出的问题

    我在Qt主程序中开启一个线程,线程中使用信号-槽来产生QMainWindow(GUI),main函数代码如下:int main(int argc, char *argv[]){ QApplicatio ...

  5. 「SAP 技术」SAP BP显示供应商账户组时候的怪现象

    SAP BP显示供应商账户组时候的怪现象 BP事务代码显示某个vendor的时候,笔者发现对于账户组字段选项列表里,不显示当前vendor的account group. 如下图,该供应商的accoun ...

  6. python基础-TCP协议和UDP协议

    TCP协议是一种流式协议,UDP协议是一种数据包协议. TCP和UDP是OSI模型中传输层的协议.TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输. TCP和UDP区别总 ...

  7. Jinkins自动构建

    Jinkins自动构建 1.项目添加 点击左侧操作栏“新建”,填写项目基础信息,如下图: 2. General配置 2.1 丢弃旧的构建 注:此处勾选丢弃旧的构建,默认天数为1,最大个数建议填写3-5 ...

  8. day74_10_21 三大认证

    一.权限六表. 一般在django中,基于用户权限访问控制的认证是RBAC(Role-Based Access Control) 还有一些基于auth的认证规则. Django框架采用的是RBAC认证 ...

  9. 快速傅里叶变换(FFT)学习笔记

    定义 多项式 系数表示法 设\(A(x)\)表示一个\(n-1\)次多项式,则所有项的系数组成的\(n\)维向量\((a_0,a_1,a_2,\dots,a_{n-1})\)唯一确定了这个多项式. 即 ...

  10. 计算机体系结构:量化研究方法(中文第五版)_扫描版_23.5M.pdf