python的beautifulsoup库(结合文档,个人小总结)

基本操作区:
soup.prettify()将解码后的网页内容对象soup,转换成标准的H5格式
soup.标签名 获得第一个这个标签的内容(列如:soup.title输出The Dormouse’s story)即这个标签包含的包括标 签的内容
同样soup.标签1.标签2。。。可以循环,就是取第一个标签1的第一个标签2.。。
soup.标签名.name获得这个标签的名字(例如:soup.p.name,结果是p)
soup.标签名.string获得第一个这个标签的内容(不包括标签,比如soup.p.string结果是The Dormouse’s story)
soup.标签名[]获得的是第一个这个标签中,[]内对应的值,比如

The Dormouse’s story

然后print (soup.p[‘class’])结果就是’title’(类似于提取字典)
soup.find(条件)找到满足find内部条件的第一条完整语句(包含标签和内容)比如print(soup.find(id=1100))对应的就是p class=“title” id=1100> The Dormouse’s story#貌似只能找id
soup.find_all(条件)#条件可以是标签名字,或者id=??等等,并且找出所有的满足项,形成一个列表。#貌似不能找class
嵌套查询,利用find_all获得的列表中的每一项,可以获得他们对应的各个参数对应信息。比如:
for link in soup.find_all(‘a’):
print(link.get(‘href’))
# http://example.com/elsie
# http://example.com/lacie
# http://example.com/tillie
(与soup.标签名[]区别在于,这个利用列表中的每一项,每一项不是soup对象,而soup.标签名[]是利用soup对象中的某个 标签来查询)
soup.get_text()获得soup对象获得的经过解析后的网页的所有内容(去除掉标签,这是和soup.prettify()的区别)
基本概念区:
soup=bf(html_doc,‘html.parser’)中soup是BeautifulSoup对象
soup.标签获得的是tag对象
soup.标签(或者什么的).string获得的是NavigableString对象,且这个对象不能被直接修改,除非利用tag.string.replace_with (字符串)才能替换修改:
tag.string.replace_with(“No longer bold”)
print(tag)
#
No longer bold

进阶区:
1、tag对象进阶:
tag.contents可以将该tag对象的所有子tag以列表形式展现,比如:
head_tag = soup.head
head_tag
# The Dormouse’s story
			head_tag.contents
			[<title>The Dormouse's story</title>]
	tag.children是一个生成器,可以就用for i in形式。将tag中的子tag作为生成器的成员:
			for i in soup.body.children:
				print(i)
			<p class="title">Once upon a time there were three little sisters; and their names were
			<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>,
			<a class="sister" href="http://example.com/lacie" id="link2">Lacie</a> and
			<a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>;
	tag.descendants也是一个生成器,只是前两个每个成员都是直接子tag,而这个是每个子tag是一个成员外,每个孙tag也是		一个单成员,并且,标签里的内容也是一个单成员。
	
2、NavigableString对象进阶:
	soup.string生成的对象可能会产生空格,而soup.stripped_strings 会自动去除空格和空行	
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值