开始前需安装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库介绍的更多相关文章

  1. Beautiful Soup库基础用法(爬虫)

    初识Beautiful Soup 官方文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/# 中文文档:https://www.crumm ...

  2. 【转载】Beautiful Soup库(bs4)入门

    转载自:Beautiful Soup库(bs4)入门 该库能够解析HTML和XML 使用Beautiful Soup库:      from bs4 import BeautifulSoup impo ...

  3. Beautiful Soup库入门

    1.安装:pip install beautifulsoup4 Beautiful Soup库是解析.遍历.维护“标签树”的功能库 2.引用:(1)from bs4 import BeautifulS ...

  4. Python Beautiful Soup库

    Beautiful Soup库 Beautiful Soup库:https://www.crummy.com/software/BeautifulSoup/ 安装Beautiful Soup: 使用B ...

  5. python beautiful soup库的超详细用法

    原文地址https://blog.csdn.net/love666666shen/article/details/77512353 参考文章https://cuiqingcai.com/1319.ht ...

  6. 【Python爬虫学习笔记(3)】Beautiful Soup库相关知识点总结

    1. Beautiful Soup简介     Beautiful Soup是将数据从HTML和XML文件中解析出来的一个python库,它能够提供一种符合习惯的方法去遍历搜索和修改解析树,这将大大减 ...

  7. python之Beautiful Soup库

    1.简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.python式的函数用来处理导航.搜索 ...

  8. Beautiful Soup库

    原文传送门:静觅 » Python爬虫利器二之Beautiful Soup的用法

  9. crawler碎碎念4 关于python requests、Beautiful Soup库、SQLlite的基本操作

    Requests import requests from PIL import Image from io improt BytesTO import jason url = "..... ...

随机推荐

  1. 平台播放声音(ext.js)

    首先把需要的两个js文件放在public/core路径下 (文件已经上传到博客了) 音频文件放在文件一级目录 代码:JxCustom.loadAudio("wav/NG.wav") ...

  2. C# 中请使用Contains判断字符串是否包含另一段字符串

    ∵ :使用Contains 比 IndexOf 的性能要高很多. 因为 Contains 是判断某个字符串是否在该字符串里面,而IndexOf是返回对应下标值 但是在使用contains的时候,注意转 ...

  3. SourceTree使用

    SourceTree的基本使用   1. SourceTree是什么 拥有可视化界面的项目版本控制软件,适用于git项目管理 window.mac可用 2. 获取项目代码 1. 点击克隆/新建 2. ...

  4. 为什么 kubernetes 天然适合微服务 (2)

    此文已由作者刘超授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验 三.微服务化的十个设计要点 微服务有哪些要点呢?第一张图是 SpringCloud 的整个生态. 第二张图是微服 ...

  5. kali linux之skipfish,arachni

    c语言编写,实验性的主动web安全评估工具,递归爬网,基于字典的探测,速度较快--(多路单线程,启发式自动内容识别),误报率低 常用参数 -I 只检查包含/xx/的url -X 不检查包含/xx/的u ...

  6. kali linux之被动信息收集recon-ng

    开源的全特性的web侦查框架,基于python开发 命令格式与msf一致 使用方法:模块,数据库,报告 -h 帮助信息 -v 版本信息 -w 进入工作区,如果没有此工作区,则创建该工作区 -r 批量的 ...

  7. 初学python-字符串中引号的使用、input简介、强制类型转换、加减乘除简写、条件判断

    一.字符串中单引号和双引号的使用: 1.字符串以英文单引号' '引用.eg:'Hello World' 2.若字符串中含有单引号,则以英文双引号" "引用.eg:"I'm ...

  8. 【转】c#中@的3种作用

    源地址:https://www.cnblogs.com/linkbiz/p/6380814.html

  9. 题解 P2350 【[HAOI2012]外星人】

    题目链接 还是本宝宝写题解的一贯习惯 $ :$ 先吐槽吐槽这道题$……$ 相信不少同学第一眼一定没有看懂题.(因为我也没看懂) ~~初中~~数学知识: 对于函数 $ f(x)$ 有 $f^{-1}(x ...

  10. Python编程笔记二进制、字符编码、数据类型

    Python编程笔记二进制.字符编码.数据类型 一.二进制 bin() 在python中可以用bin()内置函数获取一个十进制的数的二进制 计算机容量单位 8bit = 1 bytes 字节,最小的存 ...