python爬虫-Beautiful Soup学习笔记

来源:互联网 发布:mysql insert select 编辑:程序博客网 时间:2024/05/29 12:41

Beautiful Soup可以从HTML或XML文件中提取数据,是一个解析、遍历、维护“标签树”的库。

① 安装

win10平台,以管理员身份运行cmd,执行

pip install beautifulsoup4

如果同时安装了python2和python3,分别修改python.exe名字为python2.exe和python3.exe,然后分别重新安装pip,再使用pip2或pip3即可。

② 官方文档

官方文档

③ 导入库

from bs4 import BeautifulSoup

④ 选择解释器

传入一个 html 文档,soup是获得文档的对象。然后,文档被转换成 Unicode ,并且 HTML 的实例都被转换成 Unicode 编码。然后,Beautiful Soup 选择最合适的解析器来解析这段文档,如果手动指定解析器那么 Beautiful Soup 会选择指定的解析器来解析文档。
图片来源MOOCBIT

⑤ 基本元素种类

Beautiful Soup 将复杂 HTML 文档转换成一个复杂的树形结构,每个节点都是 Python 对象。
来源MOOCBIT
也有的认为name和attributes不作为基本元素,然后将BeautifulSoup单独列出来,表示一个文档的全部内容。

举例:

from bs4 import BeautifulSouphtml = """<html><head><title>This is a demo </title></head><body><p class="title"><b>The demo's story.</b></p><p class="course">This is my blog.<a href="http://blog.csdn.net/zhangffyy" class="py1" id="link1"><!-- Comment --></a>.</p></body></html>"""soup = BeautifulSoup(html,"html.parser") print(soup.title)                #tag标签tag = soup.pprint(tag.name)               #tag的nameprint(tag.attrs)                #tag的attrsprint(tag.string)            #tag的内容print(soup.a.string)         #注释

输出结果:

<title>This is a demo </title>p{'class': ['title']}The demo's story. Comment 

⑥ 搜索标签树

(1)find_all( name , attrs , recursive , text , **kwargs )
find_all() 方法搜索当前tag的所有tag子节点,并判断是否符合过滤器的条件。

(2)find( name , attrs , recursive , text , **kwargs )
与 find_all() 方法的区别是 find_all() 方法的返回结果是包含一个元素的列表,而 find() 方法直接返回结果。

⑦ 遍历标签树

来源MOOCBIT

推荐网站:
静觅 » Python爬虫利器二之Beautiful Soup的用法
MoocBit

原创粉丝点击