Beautiful Soup库介绍
开始前需安装Beautiful Soup 和lxml。
Beautiful Soup在解析时依赖解析器,下表列出bs4支持的解析器。
| 解析器 | 使用方法 |
| Python标准库 | BeautifulSoup(markup,"html.parser") |
| lxml HTML解析器 | BeautifulSoup(markup,"lxml") |
| lxml XML解析器 | BeautifulSoup(markup,"xml") |
| html5lib | BeautifulSoup(markup,"html5lib") |
from bs4 import BeautifulSoup
import requests
url = 'http://bangumi.tv/anime/browser?sort=rank&page=1'
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36'
}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content.decode('utf-8'),'lxml')
使用lxml初始化Beautiful Soup
print(soup.title)
#输出title节点
print(soup.title.string)
#输出title节点的文本内容
print(soup.p)
#当有多个p节点时,只选择到第一个p节点
print(soup.title.name)
#title节点的name属性
print(soup.p.attrs)
#选择p节点的所有属性以字典输出
print(soup.p.attrs['name'])
#选择p节点的name属性
print(soup.p['name'])
#上面的简单写法
print(soup.head.title.string)
#支持嵌套选择
print(soup.p.contents)
#选择p节点的直接子节点,包括节点与文本,以列表形式返回
print(soup.p.children)
#选择p节点的直接子节点,包括节点与文本,以生成器类型返回
print(soup.p.descendants)
#选择p节点的所有子孙节点,包括节点与文本,以生成器类型返回
print(soup.p.parent)
#选择p节点的直接父节点
print(soup.p.parents)
#选择p节点的所有父节点
print(soup.a.next_sibling)
print(soup.a.previous_sibling)
print(list(enumerate(soup.a.next_siblings)))
print(list(enumerate(soup.a.previous_siblings)))
#选择p节点的下一个兄弟元素、上一个兄弟元素、后面所有的兄弟元素、前面所有兄弟元素
find_all(name,attrs,recursive,text,**kwargs)
查询所有符合条件的元素
ul = soup.find_all(name='ul'))
#获取所有ul节点
print(ul.find_all(name='li'))
#获取ul节点的所有li节点
print(soup.find_all(attrs={'id':'list-1'}))
#利用属性值查询
print(soup.find_all(id='list-1'))
#上一句的简写
print(soup.find_all(text=re.compile('link')))
#text参数用来匹配节点的文本,可传入字符串或正则表达式
print(soup.find(id='list-1'))
#find()方法只返回第一个匹配到的元素
print(soup.select('.panel .panel-heading'))
print(soup.select('ul li'))
#使用CSS选择器时,需调用select()方法,传入相应的CSS选择器
Beautiful Soup库介绍的更多相关文章
- Beautiful Soup库基础用法(爬虫)
初识Beautiful Soup 官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/# 中文文档:https://www.crumm ...
- 【转载】Beautiful Soup库(bs4)入门
转载自:Beautiful Soup库(bs4)入门 该库能够解析HTML和XML 使用Beautiful Soup库: from bs4 import BeautifulSoup impo ...
- Beautiful Soup库入门
1.安装:pip install beautifulsoup4 Beautiful Soup库是解析.遍历.维护“标签树”的功能库 2.引用:(1)from bs4 import BeautifulS ...
- Python Beautiful Soup库
Beautiful Soup库 Beautiful Soup库:https://www.crummy.com/software/BeautifulSoup/ 安装Beautiful Soup: 使用B ...
- python beautiful soup库的超详细用法
原文地址https://blog.csdn.net/love666666shen/article/details/77512353 参考文章https://cuiqingcai.com/1319.ht ...
- 【Python爬虫学习笔记(3)】Beautiful Soup库相关知识点总结
1. Beautiful Soup简介 Beautiful Soup是将数据从HTML和XML文件中解析出来的一个python库,它能够提供一种符合习惯的方法去遍历搜索和修改解析树,这将大大减 ...
- python之Beautiful Soup库
1.简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索 ...
- Beautiful Soup库
原文传送门:静觅 » Python爬虫利器二之Beautiful Soup的用法
- crawler碎碎念4 关于python requests、Beautiful Soup库、SQLlite的基本操作
Requests import requests from PIL import Image from io improt BytesTO import jason url = "..... ...
随机推荐
- 制作百度地图离线JavaScript API加载本地瓦片地图
全面介绍,请看下列介绍地址,改写目前最新版本的百度V2.0地图,已全面实现离线操作,能到达在线功能的95%以上 http://api.jjszd.com:8081/apituiguang/gistg. ...
- 解决Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker fro问题
项目中碰到一个问题,就是将一个map转换成json格式的时候出现错误,最后排查将延迟加载关闭后成功转换,因为数据量较大,于是重新创建了一个对象进行接收. 解决办法是在配置文件中进行配置 虽然解决了这个 ...
- css清除浮动的8种方法以及优缺点
浮动会使当前标签产生上浮的效果,同时会影响到前后的标签.父级标签的位置及width height 属性.而且同样的代码,在各种浏览器中效果可能不同,这样让清除浮动更难了.清除浮动引起的问题有很多的方法 ...
- luoguP3224 [HNOI2012]永无乡
https://www.luogu.org/problemnew/show/P3224 考虑对每个岛维护一颗平衡树,用并查集维护连通性,启发式合并即可 这东西其实是一个大暴力,每次把节点少的平衡树合并 ...
- The server of Apache (三)——网页优化
在企业中,部署apache后只采用默认的配置参数,会有很多问题,因为那些配置都是针对以前服务器配置的. 一.网页压缩 1.介绍 配置apache的网页压缩功能,是使用Gzip压缩算法来对apache服 ...
- JavaScript学习笔记——2.数据类型与类型转换
数据类型 JS中一共分成六种数据类型 1- String 字符串 2- Number 数值 3- Boolean 布尔值 4- Null 空值 5- Undefined 未定义 6- Object 对 ...
- Flink学习笔记:Connectors之kafka
本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...
- opencv学习笔记3——图像缩放,翻转和阈值分割
#图像的缩放操作 #cv.resize(src,dsize,dst=None,,fx=None,fy=None,interpolation=None) #src->原图像,dsize->目 ...
- 【问题记录】element is not attached to the page document
遇到ui脚本报错:element is not attached to the page document 解决办法,再次定位即可
- 精通 WPF UI Virtualization (提升 OEA 框架中 TreeGrid 控件的性能)
原文:精通 WPF UI Virtualization (提升 OEA 框架中 TreeGrid 控件的性能) 本篇博客主要说明如何使用 UI Virtualization(以下简称为 UIV) 来提 ...