python爬虫从0到1 -beautifulsoup(bs4)的基本使用


from bs4 import beautifulsoup

3. 创建对象


  1. 服务器响应的文件生成对象

soup = BeautifulSoup(response.read().decode(‘utf-8’),‘lxml’)

  1. 本地文件生成对象

soup = BeautifulSoup(open(‘beautiful.html’,encoding=‘utf-8’),‘lxml’)

注:打开文件格式默认为gbk,因此我们需要指定编码为utf-8

(三)节点定位

==========================================================================

根据标签名查找结点


以下实例由此HTML源码为基础:

Title
    • 北京
    • 上海
    • 重庆
    • 天津
    • welcome

      python爬虫

      hello world

      baidu

      1. 查找第一个符合条件的值:

      print(soup.a)

      1. 查找标签的属性和属性值并以列表的形式展现

      print(soup.a.attrs)

      (四)bs4 的一些函数

      ===============================================================================

      1. find


      1. 返回第一个符合条件的结果

      print(soup.find(‘a’))

      1. 根据title的值来查找对应的标签对象

      print(soup.find(‘a’,title=“t2”))

      1. 根据class的值来查找对应的标签对象

      注:class在这里需要添加下划线来表示本身而不是关键字。

      print(soup.find(‘a’,class_=“a1”))

      2. find_all


      1. 返回所有符合条件的标签,并以列表的形式显示

      print(soup.find_all(‘a’))

      1. 返会多个标签,因为返回的结果为列表,因此在打印多个标签结果时,需要加上[]

      print(soup.find_all([‘a’,‘p’]))

      1. 返回前两个符合条件的标签

      print(soup.find_all(‘li’,limit=2))

      3. select


      1. 返回所有符合条件的结果

      print(soup.select(‘a’))

      1. 通过类选择器.表示class。

      print(soup.select(‘.a1’))

      1. 通过类选择器#来表示id

      print(soup.select(‘#i1’))

      1. 通过属性选择器来查找li中带有id的结果

      print(soup.select(‘li[id]’))

      1. 通过属性选择器查找li中class为cl3 的结果

      print(soup.select(‘li[class= “cl3”]’))

      1. 通过后代选择器(空格),打印div所有后代为li的值

      print(soup.select(‘div li’))

      1. 子代选择器 > 打印某一级的子标签

      print(soup.select(‘div > ul > li’))

      1. 打印多个标签结果 ,在select属性中不需要加[],输出的结果以列表的形式显示

      自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

      深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

      因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

      img

      img

      img

      img

      img

      img

      既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

      由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

      如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

      t4e1G-1713676967335)]

      img

      img

      既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

      由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

      如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

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

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

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

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值