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 = "..... ...
随机推荐
- fputs()
原型:int fputs(const char *str, FILE *stream) 参数解释: const char *str : const限制函数内部修改指针指向的数据(在函数形参使用cons ...
- UIImageView 动画
1.UIImageView 动画 1.1 播放图片集 @property (nonatomic, strong) UIImageView *playImageView; self.playImageV ...
- django中博客后台将图片上传作为用户头像
添加上传目录 # 如果不添加上传目录,仍然可以上传成功,默认为project目录,如果models.py定义了upload_to="目录名称",则会上传到"project ...
- Ubuntu 安装后的配置及美化(二)
Ubuntu安装后的配置与美化(二) 上篇文章讲了安装ubuntu后的一系列基础的配置,已经可以满足日常的使用了,这篇文章讲一下安装 IDE 及一些其他的配置. 1.安装 SSR 下载 SSR 客户端 ...
- sql随机插入数据--记录
sql面试题中经常出现一张学生表,表字段有学生ID,学生课程,学生成绩 今天要实测,so,需要有数据,now,随机生成数据,,, create table student ( id ), --编号 c ...
- 移动像素的px ,dp/pt,dpr的关系
一:基础知识 px:逻辑像素,浏览器使用的抽象单位 dp,pt:设备无关像素 也叫物理像素 dpr:devicePixelRatio 设备像素缩放比 计算公式:1px=(dpr)^2*dp; ipho ...
- R语言排序函数汇总
总结: 1.sort是直接对向量排序,返回原数值: 2.order先对数值排序,然后返回排序后各数值的索引: 3.rank返回原数据各项排名,有并列的情况: 4.arrange是dplyr包中的,可对 ...
- LeetCode6. Z字形变换
描述 The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows li ...
- POJ 2182 Lost Cows (求序列第k大)
题解 二分+树状数组 显然最和一个数的值就是rank 那么其它数有什么规律? 从后往前匹配rank,我们可以发现第i个数的rank为还没有匹配的rank第(a[i]+1)大的数 这可以用 树状数组+二 ...
- Asp.Net 远程连接Oracle数据库
Asp.Net 远程连接Oracle数据库 首先从微软停止.Net FrameWork支持Oracle数据库的研发,转为第三方提供说起,微软是很有实力的公司,他在桌面领域令其他对手望其项背,产品战线也 ...