爬虫-----075bs4的基本使用

本文介绍了如何使用Python的BeautifulSoup库解析本地HTML文件,包括文件生成对象的创建,通过标签名、属性和选择器查找节点,以及获取节点内容和属性的方法。
摘要由CSDN通过智能技术生成
#服务器响应的文件生成对象
#    soup = BeautifulSoup(response.read(),'lxml')
#本地文件生成的对象
#    soup = BeautifulSoup(open('1.html'),'lxml')

from bs4 import BeautifulSoup

#解析本地文件生成的对象
#    soup = BeautifulSoup(open('1.html'),'lxml')
#默认打开格式为gbk格式 需要指定编码
soup = BeautifulSoup(open('075bs4的基本使用.html',encoding='utf-8'),'lxml')
#根据标签名查找节点  找到的是第一个符合条件的数据   print(soup.a)
#attrs获取标签的属性和属性值      print(soup.a.attrs)

#************bs4的一些函数*******
#(1)find
# 反回第一个符合条件的数据
# print(soup.find('a'))
#根据title的值找到对应的标签对象
# print(soup.find('a',title='a2'))
#根据class的值找到相应的标签对象  注意:class需添加下划线
# print(soup.find('a',class_="a1"))

#(2)find_all
#返回一个列表  并且返回了所有的a标签
#若想获取多个标签的数据 则须在find_all的参数中添加的是列表的数据
# print(soup.find_all(['a','span']))
#limit的作用是查找前几个数据
# print(soup.find_all('li',limit=2))

#(3)select
#select返回的是一个列表 并且会返回多个数据
# print(soup.select('a'))
#可以通过   .   代表class  类选择器
# print(soup.select('.a1'))
#可以通过   #   代表id     类选择器

#属性选择器----------通过属性来寻找都对应的标签
#查找li标签中有id的标签
# print(soup.select('li[id]'))
#查找li标签中有id=2的标签
# print(soup.select('li[id="2"]'))

#层级选择器
#   后代选择器   空格
#要找到的是div下的li
# print(soup.select('div li'))

#子代选择器
#  某标签的第一级子标签
#注意:  很多的计算机编程语言中,若不加空格会报错,bs4库中可加可不加 div > ul > li
# print(soup.select('div>ui>li'))

#找到a标签和li标签的所有的对象
# print(soup.select('a,li'))

#节点信息
#   获取节点内容
# obj = soup.select('#d1')[0]   #列表格式  根据下标读取
#如果标签对象中 只有内容 那么string和get_text()都可以使用
#如果标签对象中  除了内容还有标签  那么string就获取不到数据 而get_text()可以获得数据
# print(obj.string)
# print(obj.get_text())    #推荐使用

#节点属性
# obj = soup.select('#p1')[0]
# #name是标签的名字
# print(obj.name)
#将属性值作为一个字典返回
# print(obj.attrs)

#访问节点的属性
obj = soup.select('#p1')[0]
print(obj.attrs.get('class'))
print(obj.get('class'))
print(obj['class'])

本地文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <ul>
            <li id="l3">北京</li>
            <li id="l2">上海</li>
            <li id="c2" class="c1">深圳</li>
            <a href="" id="">尚硅谷</a>
            <span>嘿嘿嘿</span>
        </ul>
    </div>
    <a href="" title="a2">百度</a>
    <div id="d1">
        <span>
            哈哈哈
        </span>
    </div>
<p id="p1" class="p1">hehe</p>
</body>
</html>

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值