本篇文章主要讲bs4模块(BeautifulSoup),这个模块能做么呢?用一句话来概括的话:beautifulsoup4 从HTML或XML文件中提取数据的Python库,用它来解析爬取回来的xml。从而从网站中精准爬取自己想要的内容。

它是Python的第三方模块,因此需要下载

pip install pip install beautifulsoup4

这个模块与另一个lxml(解析库)模块配合这个用

pip install lxml

最基本用法

html_doc = '需要解析的HTML内容'
soup = BeautifulSoup(html_doc, 'lxml')

一、BeautifulSoup遍历文档树

1. 美化,不是标准xml,完成美化
print(soup.prettify()) 2. 遍历文档树(通过点来遍历)
print(soup.html.body.p) # 一层一层找 3. 获取标签的名称
print(soup.a.name) 4. 获取标签的属性
print(soup.a.attrs.get('class')) 5. 获取标签的内容
print(soup.p.text)
print(list(soup.p.strings)) # generator

二、BeautifulSoup搜索文档树

2. 通过find或find_all来搜索

# 1 字符串--->查询的条件是字符串
res=soup.find_all(name='p')
res=soup.find_all('p')
print(res) # 2 正则表达式
import re
res=soup.find_all(class_=re.compile('^s'))
print(res) # 3 列表
res=soup.find_all(id=['link1','link2'])
print(res)
print(soup.find_all(name=['a','b']))
print(soup.find_all(['a','b'])) # 4 True
res=soup.find_all(id=True) # 所有有id的标签
res=soup.find_all(href=True)
res=soup.find_all(class_=True)
print(res)

3. 通过css选择器来搜索

其实css选择器是前端重点内容,但是对于后端程序员而言会用就行,这里我放大招哈哈哈

首先去浏览器右键检查、然后用定位箭头定位目的地、点击对用的HTML右键、选择copy、再现在copy selector 按照这个步骤就快速得到一个css选择器咯,css选择器大痛点解决之后,接下来咱看一下如何用css选择器搜索文档树吧,具体请看如下代码框

from bs4 import BeautifulSoup
import requests
res=requests.get('https://www.w3school.com.cn/css/css_selector_attribute.asp')
soup=BeautifulSoup(res.text,'lxml')
print(soup.select('#intro > p:nth-child(1) > strong')[0].text)

BeautifulSoup模块的使用方法的更多相关文章

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

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

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

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

  3. Python 爬虫三 beautifulsoup模块

    beautifulsoup模块 BeautifulSoup模块 BeautifulSoup是一个模块,该模块用于接收一个HTML或XML字符串,然后将其进行格式化,之后遍可以使用他提供的方法进行快速查 ...

  4. requsets模块和beautifulsoup模块

    2.requests模块方法 requests是基于Python开发的HTTP库,使用Requests可以轻而易举的完成浏览器可有的任何操作. request.get() request.post() ...

  5. BeautifulSoup 模块详解

    BeautifulSoup 模块详解 BeautifulSoup是一个模块,该模块用于接收一个HTML或XML字符串,然后将其进行格式化,之后遍可以使用他提供的方法进行快速查找指定元素,从而使得在HT ...

  6. 03 解析库之Beautifulsoup模块

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

  7. python开发_常用的python模块及安装方法

    adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctype ...

  8. 常用的python模块及安装方法

    adodb:我们领导推荐的数据库连接组件 bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctyp ...

  9. 孤荷凌寒自学python第六十八天学习并实践beautifulsoup模块1

    孤荷凌寒自学python第六十八天学习并实践beautifulsoup模块1 (完整学习过程屏幕记录视频地址在文末) 感觉用requests获取到网页的html源代码后,更重要的工作其实是分析得到的内 ...

  10. bs4——BeautifulSoup模块:解析网页

    解析由requests模块请求到的网页 import requests from bs4 import BeautifulSoup headers = {'User-Agent': 'Mozilla/ ...

随机推荐

  1. docker 搭建mysql主从复制环境(一主两从)

    一主多从配置 服务器规划:使用docker方式创建,主从服务器IP一致,端口号不一致 主服务器:容器名docker-mysql-master,端口3306 从服务器:容器名docker-mysql-s ...

  2. A - Add Odd or Subtract Even

    A - Add Odd or Subtract Even 思路:其实认真观察就能发现,这个与输入的书有关系,且答案为0,1,2.先看相同,不用加减,为0,再看前小后大,因为加奇数减偶数,如果,相差奇数 ...

  3. 【python】界面学习

    最近开始要用python做界面了,又是在百度的洪流中不断呛水.下面列举了很多我在过程中查询的内容以及我认为相对对我的认知有益的链接. 1.python有哪些做界面的工具 三个:python gui 中 ...

  4. 笔记:map函数方法映射

    ------------恢复内容开始------------ map函数可以对后端接口返回一个数组 map存在一个参数时: map存在三个参数时: 语法: array.map(function(cur ...

  5. SpringCloud框架开发

    1.是什么微服务 是一种架构模式,他提倡将单一应用程序划分一组小的服务,服务之间的相互配合.互相协调. 2.Spring Cloud简介 SpringClound等于分布式微服务架构的一站式解决方案, ...

  6. 关于在Eclipse中使用EclEmma

    在LAB2中,要求使用EclEmma来统计JUnit测试用例的代码覆盖度.下面就来说说如何进行基本的使用来应付实验(bushi). 在这给出完全体,可以访问下面的网址进行学习. http://www. ...

  7. 如何解决7z: command not found问题

    7z是一种常见的压缩文件格式,如果你想要压缩或解压缩7z文件,你需要在你的系统上安装p7zip和p7zip-full.但是,有时候你会发现当你尝试运行7z或7za命令时,它会显示"bash: ...

  8. Verilog中端口的连接规则

    摘自于(15条消息) Verilog中端口应该设置为wire形还是reg形_CLL_caicai的博客-CSDN博客, 以及(15条消息) Verilog端口连接规则_「已注销」的博客-CSDN博客_ ...

  9. String 练习题

    题目一:获取指定字符串中,大写字母.小写字母.数字的个数. 题目二:将字符串中,第一个字母转换成大写,其他字母转换成小写,并打印改变后的字符串. 题目三:查询大字符串中,出现指定小字符串的次数.如&q ...

  10. matlab函数学习笔记

    数值精度 显示精度由format函数控制,不影响原始数据,只控制显示精度 命令 说明 long   short   rat 分数 digits   vpa   pi的输出 命令 显示结果结果 form ...