BeautifulSoup

cmd进入workon  env1(进入env1虚拟环境)

pip install beautifulsou下载bs4

四大对象种类:

BeautifulSoup:将复杂HTML文档转换成一个复杂的树形结构

Tag:标签

NavigableString:标签里面的文本

BeautifulSoup:整个DOM树

Comment:注释(HTML注释<!--  -->)

创建xpath对象:s = etree.HTML(html)

创建BeautifulSoup对象:soup = BeautifulSoup(html,'lxml')

操作tag对象:soup.title,soup.head(类型都是bs4.element.Tag)

                       soup.a (只返回第一个a标签)

两个属性:name和attr(xpath用@)

soup.name(docment),

soup.head.name(返回标签名head)

soup.head.string,(返回标签里面的文字,直接获取注释里面的文本,不带注释符号)

soup.p.attrs(返回所有属性,放入字典里面)

soup.p.['class']和soup.p.get('class')(返回p标签,属性class的属性值)

soup.p['class'] = 'newclass'(修改p标签中,属性class的属性值)

del   soup.p['class'](删除属性)

操作节点元素,访问任意属性,获取文本

直接子节点:.contents  .children

soup.head.contents:返回列表 ,访问所有子节点

soup.head.contents[0]:返回列表的第一个元素

soup.head.children:返回迭代器,可以用for循环遍历

xpath,

css选择器

select()返回列表,select_one()返回列表中的第一个元素

如果没有元素,select()返回空列表,select_one()报错,确定有内容时使用,使用的时候可以判断一下

soup.select( '标签名' ):通过标签名查找,

soup.select( ' . 类名' ):通过类名查找

soup.select( ' # id名' ):通过类名查找

soup.select( 'p   #link' ):p标签中,id等于link的内容,二者需要用空格分开,子孙标签

soup.select( 'body>p>a' ):直接子标签查找,则使用 >  分隔

soup.select( 'body>p>a#link' ):a标签中id等于link

soup.select( 'body>p>#link' )

soup.select( 'body>p>. stster' ):p标签下面的标签中,类名等于sister

属性查找:

soup.select( ' a[class="sister"]' )和soup.select( ' a.stster')

soup.select( 'a[href="http://......."]' )

soup.select( 'p   a[href="http://......."]' )

属性获取:

soup.select

获取内容:

soup.select('title')[0].get_text()和soup.select('title')[0].string

区别:string可以获取注释里面的文本,get_text()不可以

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值