资讯专栏INFORMATION COLUMN

BeautifulSoup4 入门

focusj / 1779人阅读

摘要:是包里最有名的分解工具之一。简单易用安装注意大小写,而且不要安装,因为代表,已经停止更新。而不同的变量的使用方法也需要注意。类型可遍历字符串类型类型增删改标签参考使用改变网页内容修改标签内容

BeautifulSoup是Python包里最有名的HTML parser分解工具之一。简单易用
安装:
pip install beautifulsoup4

注意大小写,而且不要安装BeautifulSoup,因为BeautifulSoup代表3.0,已经停止更新。

常用语法

参考我之前的文章:BeautifulSoup :一些常用功能的使用和测试

# 创建实例
soup = BeautifulSoup(html, "html5lib")
选择器

根据不同的网页,选择器的使用会很不同:

绝大部分下使用CSS选择器select()就足够了

如果按照标签属性名查找,而属性名中有-等特殊字符,那么就只能使用find()选择器了。

# 最佳选择器: CSS选择器(返回tag list)
results = soup.select("div[class*=hello_world] ~ div")

for tag in results:
    print(tag.string)       #print the tag"s html string
    # print(tag.get_text())     #print its inner text

#单TAG精确选择器:返回单个tag. 
tag = soup.find("div", attrs={"class": "detail-block"})
print(tag.get_text())

# 多Tag精确选择器: 返回的是text,不是tag
results = soup.find_all("div", attrs={"class": "detail-block"})

# 多class选择器(标签含有多个Class),重点是"class*="
results = soup.select("div[class*=hello_world] ~ div")
获取值
tag = soup.find("a")

# 只获取标签的文本内容
text = tag.get_text()

# 获取标签的全部内容(如 asdfa)
s = tag.string

# 获取标签的属性
link = tag["href"]
修改值

参考:Beautiful Soup(四)--修改文档树

tag = soup.find("a", attrs={"class": "detail-block"})

#修改属性
tag["href"] = "https://google.com"

# 修改内容 ..中间的内容
tag.string = "New Content"

# 删除属性
del tag["class"]
对象类型

在我们使用选择器搜索各类tag标签时,BeautifulSoup会根据使用的函数而返回不同类型的变量。而不同的变量的使用方法也需要注意。

Tag类型():

tag.string

tag.get_text()

可遍历字符串类型(bs4.element.NavigableString):

Comment类型():

增删改标签

参考:使用BeautifulSoup改变网页内容

# 修改标签内容
tag = soup.find("title")
tag.string = "New Title"

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43079.html

相关文章

  • Python爬虫教学(写给入门的新手) 一

    摘要:在不懂和等协议的情况下,我直接打个比方来解释一下什么是请求,以浏览器为例,人在浏览器输入,然后敲击键,直到页面出现,整个过程,我们可以抽象为我们向百度服务器发起的一次请求。更专业,更详细的解释,自己去百度学习吧。 前言   刚学完python基础,想学习爬虫的新手,这里有你想要的东西。  本文着重点在于教新手如何学习爬虫,并且会以外行人的思维进行形象地讲解。最近我一兄弟想学,我就想写个...

    zone 评论0 收藏0
  • Linux下安装python-2.7

    摘要:优化编写一键安装的脚本由于的系统默认都是,如果服务器需要用环境的话每台都得手动操作升级,工作量比较大,编写脚本提升效率。 安装依赖的库 yum -y install python-devel openssl openssl-devel gcc sqlite sqlite-devel mysql-devel libxml2-devel libxslt-devel Python =====...

    darryrzhong 评论0 收藏0
  • Python打包系统简单入门

    摘要:所以这篇文章就来研究一下自带的打包系统。打包项目下面就进入本文的正题,的打包系统上。基本上我们不需要完全了解打包系统,只要学会简单的几个点就可以打包自己的类库了。版本号下面是开发测测发布候选最终发布等情况的版本号实例。 最近把pyenv、pipenv这种都研究了一下,然后我发现一个严重的问题:就是我虽然看了半天这些工具,但是我对Python自己的打包系统却完全没有了解。所以这篇文章就来...

    ls0609 评论0 收藏0
  • Python3 爬虫 requests+BeautifulSoup4(BS4) 爬取小说网站数据

    摘要:刚学爬虫不久,迫不及待的找了一个网站练手,新笔趣阁一个小说网站。继续学习,有改进方案的欢迎提出来,一起交流。 刚学Python爬虫不久,迫不及待的找了一个网站练手,新笔趣阁:一个小说网站。 前提准备 安装Python以及必要的模块(requests,bs4),不了解requests和bs4的同学可以去官网看个大概之后再回来看教程 爬虫思路 刚开始写爬虫的小白都有一个疑问,进行到什么时候...

    taoszu 评论0 收藏0
  • Python 爬虫入门(一)——爬取糗百

    摘要:爬取糗百内容代码地址微信公众号智能制造社区,欢迎关注。爬虫程序一般是通过模拟浏览器对相应发出请求,获取数据,并通过正则等手段匹配出页面中我们所需的数据。库基本介绍是学习爬虫的一大利器。 爬取糗百内容 GitHub 代码地址https://github.com/injetlee/Python/blob/master/qiubai_crawer.py 微信公众号:【智能制造社区】,欢迎关注...

    legendaryedu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<