BeautifulSoup简介

简介

BeautifulSoup是一个高效的网页解析库,可以从 HTML 或 XML 文件中提取数据。

beautifulsoup支持不同的解析器,比如,对HTML解析,对XML解析,对HTML5解析。一般情况下,我们用的比较多的是 lxml 解析器。

当前最新的 Beautiful Soup 版本为4.4.0,Beautiful Soup 3 当前已停止维护。

安装

pip install beautifulsoup4

使用时导入:

from bs4 import BeautifulSoup

使用

编写一个test.html

<!DOCTYPE html>
<html>
<head>
    <title>BeautifulSoup入门</title>
</head>
<body>
<p>你好</p>
<a href="www.baidu.com">百度一下</a>
<p id='content'>BeautifulSoup是一个高效的网页解析库,可以从 HTML 或 XML 文件中提取数据。</p> </body> </html>

接着将 html 的源代码传给 BeautifulSoup:

from bs4 import BeautifulSoup
soup = BeautifulSoup(open('test.html', encoding='utf-8'),'lxml')

后面都是从soup这个对象获取我们要的内容。

获取标题的内容

>>> print(soup.title.string)
BeautifulSoup入门

获取 p 标签里面的内容

>>> print(soup.p.string)
你好

获取 title 的父级标签

>>> print(soup.title.parent.name)
head

获取超链接

>>> print(soup.a)
<a href="www.baidu.com">百度一下</a>

获取所有超链接

>>> print(soup.find_all('a'))
[<a href="www.baidu.com">百度一下</a>]

获取 id 为 content 的标签

>>> print(soup.find(id="content"))
<p id="content">BeautifulSoup是一个高效的网页解析库,可以从 HTML 或 XML 文件中提取数据。</p>

获取网页中所有的内容

>>> print(soup.get_text())


BeautifulSoup入门


你好
百度一下
BeautifulSoup是一个高效的网页解析库,可以从 HTML 或 XML 文件中提取数据。

除了find方法之外,如果你对css比较熟悉,也可以使用 select 方法

print(soup.select("title"))
print(soup.select("body p"))
print(soup.select("body >  #content"))

 

 

参考链接:

1. https://zhuanlan.zhihu.com/p/56108228

2. https://zhuanlan.zhihu.com/p/59822990

posted @ 2020-01-16 16:56  Rogn  阅读(1580)  评论(0编辑  收藏  举报