python网页解析库_Python_爬虫_BeautifulSoup网页解析库

BeautifulSoup网页解析库

from bs4 import BeautifulSoup

0.BeautifulSoup网页解析库包含 的 几个解析器

Python标准库【主要,系统自带;】

使用方法: BeautifulSoup(markup,"html.parser")【注:markup是html文档】

Python的内置标准库

案例:

from bs4 import BeautifulSoup

soup = BeautifulSoup.(html,'html.parser')

print(soup.title.string)

lxmlHTML解析器

BeautifulSoup(markup,'lxml)

速度快、需要安装C语言库

lxml XML解析器

使用方法:BeautifulSoup(markup,"xml")

速度快,唯一支持XML的解析器、需要安装C语言库

html5lib

BeautifulSoup(markup,"html5lib")

容错性好,以浏览器的形式解析文档,生成html5格式的文档,但是速度慢

1.BeautifulSoup基本使用

#!/usr/bin/env python

# -*- coding:utf-8 -*-

html="""

The Domouse's story

The Domouse's story

Once upon a time there were three little sisters;and their names were

百度

...

"""

from bs4 import BeautifulSoup

soup = BeautifulSoup(html,'lxml')

#获取标签正文内容

print("标签内正文内容:" + soup.title.name)

#获取属性内容

print("属性内容" + soup.p.attrs['name'])

#获取内容

print("获取内容" + soup.p.string)

#获取嵌套内容(多个筛选条件)

print("获取嵌套内容" + soup.head.title.string)

#子节点 和 孙节点【重要,,当目标标签没有id 或 class时候必须用这个】

print("子节点" + soup.p.contents) #全部子节点,返回的是列表形式

print("子节点" + soup.p.contents[2]) #第三个一级子节点,不管是什么标签

#1. 子节点#子节点【迭代器,只能用循环形式拿到数据】

soup = BeautifulSoup(html,"lxml")

print(soup.p.children)

for i,child in enumerate(soup.p.children):

print(i,child)

#2.子孙节点

soup = BeautifulSoup(html,"lxml")

print(soup.p.descendants)

for i,child in enumerate(soup.p.descendants):

print(i,child)

#父节点 和 祖先借点

print(list(enumerate("父节点:" + soup.a.parent))) #父节点

print(list(enumerate("祖父节点:" + soup.a.parent))) #祖父点

#获取兄弟节点

print("后面的兄弟节点" + list(enumerate(soup.a.next_siblings))) #后面的兄弟节点

print("前面的兄弟节点" + list(enumerate(soup.a.previous_slblings))) #前面的兄弟节点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值