程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(2)

BeautifulSoup的重要操作

发布于2019-08-07 09:49     阅读(910)     评论(0)     点赞(5)     收藏(0)


0806自我总结

BeautifulSoup

BeautifulSoup相关概念总结:https://www.cnblogs.com/pythonywy/p/11134481.html

css基础以及选择器基础:https://www.cnblogs.com/pythonywy/p/11266221.html

css选择器进阶:https://www.cnblogs.com/pythonywy/p/11276513.html

一.BeautifulSoup的重要操作

  • 解析页面

    • 最常用rp_lxml= BeautifulSoup(response.text,'lxml')其他可以转至概念
  • 提取元素

    主要有4大元素

    • Tag: HTML 中的一个个标签
    • NavigableString:可以遍历的字符串
    • BeautifulSoup:BeautifulSoup 对象表示的是一个文档的全部内容.大部分时候,可以把它当作 Tag 对象,是一个特殊的 Tag
    • Comment:Comment 对象是一个特殊类型的 NavigableString 对象,其实输出的内容仍然不包括注释符号。
  • 元素操作

二.Tap对象相关操作

1.对于tap的选取

1.find

使用re_lxml.find('css选择器')

重点只选择第一个出现的

2.select

使用re_lxml.select('css选择器')

重点会把满足CSS选择器所有内容都显示出来,输出为列表的形式

3.直接操作

使用re_lxml.标签名.标签名而不是用css选择器

重点只选择第一个出现的

4.find_all

会把满足CSS选择器所有内容都显示出来,输出为列表的形式

但是有几个优点

  • 使用多个指定名字的参数可以同时过滤tag的多个属性

    rp_lxml.find_all('属性1','属性2')

  • 要某个标签不要其中某个属性

    rp_lxml.find_all('标签名',class_='属性')

  • 定义一个字典参数来搜索包含特殊属性的tag

    rp_lxml.find_all(attrs={'属性名':'属性值'})

2.对于tap的操作

1.标签之间的转换

详情至BeautifulSoup概念

2.选取的元素相关操作

  • tap.text:内容的文本
  • tap.name:标签名字
  • tap.attrs:标签的属性
  • tap..标签p.attrs:标签内标签p的属性
  • tap.['属性名']:标签的指定属性对应的内容
  • tap.标签p.['属性名']:标签内标签p的指定属性属性

  • tap.get('属性名'):标签的指定属性对应的内容

  • tap.标签p.get('属性名'):标签内标签p的指定属性属性

三.NavigableString对象相关操作

NavigableString.string即可获取标签内部的文字

四.BeautifulSoup对象相关操作

他是一种特殊的Tap所有tap可以的操作他都可以

rp_lxml.attrs为{}

rp_lxml.name为[document]

剩下的可以去尝试不过个人感觉没啥意义

五.Comment对象相关操作

我觉得吧一个可以用用就是判断他是不是这个数据类型

print(type(未知对象.string))看他是不是comment对象



所属网站分类: 技术文章 > 博客

作者:雪儿

链接:https://www.pythonheidong.com/blog/article/9528/da4066fd30c78b46a0ef/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

5 0
收藏该文
已收藏

评论内容:(最多支持255个字符)