python 爬虫常用模块BeautifulSoup

BeautifulSoup是一个模块,该模块用于接收一个HTML或XML字符串,
然后将其进行格式化,之后遍可以使用他提供的方法进行快速查找指定元素,
从而使得在HTML或XML中查找指定元素变得简单

  1. 安装

    1
    pip install BeautifulSoup4
  2. 使用

bs4支持的解析器

解析器 使用方法 优势 劣势
Python标准库 BeautifulSoup(html_doc, “html.parser”) (1) Python的内置标准库; (2)执行速度适中;(3)文档容错能力强 Python 2.7.3或3.2.2之前的版本中文档容错能力差
lxml HTML解析器 BeautifulSoup(html_doc,”lxml”) (1)速度快; (2)文档容错能力强 需要安装C语言库
lxml XML解析器 BeautifulSoup(html_doc,”lxml) BeautifulSoup(html_doc, “xml”) (1)速度快;(2)唯一支持XML的解析器 需要安装C语言库
html5lib BeautifulSoup(html_doc, “html5lib”) (1)最好的容错性;(2)以浏览器的方式解析文档(3)生成HTML5格式的文档 (1)速度慢;(2)不依赖外部扩展
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 导入模块
from bs4 import BeautifulSoup
#基本使用
#下面两个一样,features指定解析器
soup = BeautifulSoup(html_doc,features="html.parser")
soup = BeautifulSoup(html_doc,"html.parser")

# 返回第一个查找对象 find
print(soup.find("p"))
print(soup.find(id="p2"))
print(soup.find("p",id="p2"))

# 返回对象列表, find_all
print(soup.find_all("p"))
print(soup.find_all(id="p2"))
print(soup.find_all("p",id="p2"))