BeautifulSoup4 入门

栏目: Python · 发布时间: 6年前

内容简介:BeautifulSoup是Python包里最有名的HTML parser分解工具之一。简单易用注意大小写,而且不要安装

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()

# 获取标签的全部内容(如<a href='sdfj'> asdfa</a>)
s = tag.string

# 获取标签的属性
link = tag['href']

修改值

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

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

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

# 修改内容 <tag>..</tag>中间的内容
tag.string = 'New Content'

# 删除属性
del tag['class']

对象类型

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

  • Tag类型( <class 'bs4.element.Tag'> ):

    tag.string
    tag.get_text()
    
  • 可遍历字符串类型( bs4.element.NavigableString ):
  • Comment类型( <class 'bs4.element.Comment'> ):

增删改标签

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

重来2

重来2

[美] 贾森·弗里德、[美] 戴维·海涅迈尔·汉森 / 苏西 / 中信出版社 / 2014-4-8 / 39.00元

“不再需要办公室”,这不仅仅是未来才有的事——它已经发生了。现在,轮到你迈开脚步,跟上时代的步伐了。 上百万的员工和成千上万的企业已经发现了远程工作的乐趣和好处。然而,远程工作方式还没有成为常见的选择。事实上,远程工作的技术手段都已齐备。还没有升级换代的,是人们的思想。 这本书的目的就是帮你把想法升级换代。作者会向你展示远程工作的诸多好处:可以找到最优秀的人才,从摧残灵魂的通勤路上解脱......一起来看看 《重来2》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

SHA 加密
SHA 加密

SHA 加密工具