【Python】【爬虫】关于Beautiful Soup库

1、引入库
from bs4 import BeautifulSoup
import bs4

2、简单讲,BeautifulSoup对应着一个HTML/XML文档的全部内容。

BeautifulSoup的基本元素有Tag、Name(格式:tag.name,标签的名字)、Attributes(格式:tag.attrs,常常是以字典形式组织的,相关内容不会在网页上显示出来)、NavigableString(格式:tag.string,标签内非属性字符串,<>…</>中字符串,相关内容会在网页上显示出来)、Comment(标签内字符串的注释部分,也是用tag.string提取出来)。

from bs4 import BeautifulSoup 
import requests 
url = "https://python123.io/ws/demo.html"
r = requests.get(url)
demo =  r.text
soup = BeautifulSoup(demo, "html.parser")
soup.a
Out[5]:
<a class="py1" href="http://www.icourse163.org/course/BIT-268001" id="link1">Basic Python</a>
soup.p
Out[6]:
<p class="title"><b>The demo python introduces several python courses.</b></p>

可以直接使用soup.tagname 返回想要的:比如soup.a   soup.p,如果有多个标签,则返回第一个。
3、下行遍历:

.contents 子节点的列表,将<tag>所有儿子节点存入列表;

.children 子节点的迭代类型,与.contents类似,用于循环遍历儿子节点;

.descendants 子孙节点的迭代类型,包含所有子孙节点,用于循环遍历。

4、上行遍历:

.parent 节点的父亲标签;

.parents 节点先辈标签的迭代类型,用于循环遍历先辈节点。

5、同辈遍历:

.next_sibling 返回按照HTML文本顺序的下一个平行节点标签;

.previous_sibling 返回按照HTML文本顺序的上一个平行节点标签;

.next_siblings 迭代类型,返回按照HTML文本顺序的后续所有平行节点标签;

.previous_siblings 迭代类型,返回按照HTML文本顺序的前续所有平行节点标签。

6、prettify

.prettify()为HTML文本<>及其内容增加更加'\n'

.prettify()可用于标签,方法:<tag>.prettify(),这样可以方便地显示出来、有树形结构的东西。

7、XML:同HTML

     JSON:有类型键值对

     YAML:无类型键值对,用缩进来组织并列递进关系

8、爬虫提取信息的方式有两种:基于标签树组织结构的;基于文本搜索查找的

9、soup.find_all()函数:

<>.find_all(name, attrs, recursive, string, **kwargs)

其中name是对标签名称的检索字符串;attrs是对标签属性值的检索字符串,可标注属性检索;recursive: 是否对子孙全部检索,默认True;

string: <>…</>中字符串区域的检索字符串

10、衍生的find函数:

<>.find() 搜索且只返回一个结果,同.find_all()参数

<>.find_parents() 在先辈节点中搜索,返回列表类型,同.find_all()参数

<>.find_parent() 在先辈节点中返回一个结果,同.find()参数

<>.find_next_siblings() 在后续平行节点中搜索,返回列表类型,同.find_all()参数

<>.find_next_sibling() 在后续平行节点中返回一个结果,同.find()参数

<>.find_previous_siblings() 在前序平行节点中搜索,返回列表类型,同.find_all()参数

<>.find_previous_sibling() 在前序平行节点中返回一个结果,同.find()参数

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值