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 = "..... ...
随机推荐
- 异常:已捕获: "Error creating context 'spring.root': 未将对象引用设置到对象的实例。" (System.Configuration.ConfigurationErrorsException) 捕获到一个 System.Configuration.ConfigurationErrorsException: "Error creating context 'sp
查看所指定name的context是否注册成功,以后用此容器来获取其中的object. 常见的使用方式: Application_Start中使用ContextRegistry.GetContext( ...
- WinForm中获取Listbox、DataGridView等控件某行对应的数据
Listbox:listbox.SelectedItem as XXX DataGridView:dataGridView1.Rows[i].Cells[1].Value.ToString()
- 第八篇 Python异常
程序在运行时,如果Python解释器遇到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常,程序通知执行并且提示错误信息,这个动作,我们通常称之为:抛出异常. 1.简单的捕获异常的语法 在程 ...
- 【bzoj4176】Lucas的数论 莫比乌斯反演+杜教筛
Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么喜欢了. 在整理以前的试题时,发现了这样一道题目"求Sigma(f(i)),其中1<=i< ...
- 题解 CF500D 【New Year Santa Network】
题目链接 这道题首先是要看看该如何化简,先把三元组化成二元组. 之后统计经过某条边的 次数$*$权值 的和. 最后除以总基数 $tot$ 其中,每条边被计算的次数为 子树的点数$*$非子树的点数 ( ...
- HDU6300-2018ACM暑假多校联合训练1003-Triangle Partition
题意是给3n个点,其中不可能存在任意三点共线的情况,让你在其中建n个三角形,点不能重复使用,三角形不能相互覆盖 做法是给每个点排序,按照先y轴排,再x轴排的顺序,三个三个一组从下往上输出,有人说是凸包 ...
- 老男孩Day16作业:登录、注册、后台管理页面(动态)
一.作业需求: 1.后台管理主界面(左边菜单框.(全选.反选)框.返回顶部按钮) 2.老男孩登录.注册页面 二.博客地址:https://www.cnblogs.com/catepython/p/93 ...
- nuget服务器搭建
本文章主要介绍如何将本地dll打包成为一个Nuget包,并如何发布到自己的nuget服务器,示例代码下载.章节如下 1. 本地dll如何打包,以及版本的更新 2. 在linux上搭建nuget.ser ...
- gitlab 服务器的搭建与使用全过程(二)
<gitlab操作手册 1.0 > 此手册适用于 Mac 计算机 第一步:根据从管理员得到的用户名和初始密码登陆并修改密码.新密码不得少于8个字符 第二步:在自己的电脑上创建密钥,并提交提 ...
- vue 在路由中复用组件
首先需要在app.vue中引入: <template> <div id="app"> <!--<app-header></app-h ...