# 创建
virtualenv venv --no-site-packages
# 启动
source venv/bin/active
pip3 install beautifulsoup4
form bs4 import BeautifulSoup as BSS
无论哪种方式,我们都读取到了 html 文件内容了,然后使用这个内容来创建 BeautifulSoup 对象
# 网络获取
html = urlopen('address')
# 读取本地文件
input_file = open('a path')
html = input_file.read()
bsObj = BeautifulSoup(html, 'html.parser')
html.parser
是 Python 标准库的一个 HTML 解释器
lxml
findAll(tag, attributes, recursive, text, limit, keywords)
find(tag, attributes, recursive, text, keywords)
findAll
tag
attributes
可以指定 css 样式来定位某类型元素recursive
是否要递归查找,默认为 True
, 即会查找子元素中的 tag
text
匹配标签文本内容limit
限制查找的数目,即查找前 limit
个keywords
关键词参数,可以指定更特殊的标识find
findAll
一样limit = 1
next_siblings
返回一组标签next_sibling
返回一个标签previous_siblings
previous_sibling
实际文档中的tag的 .next_sibling 和 .previous_sibling 属性通常是字符串或空白
<a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>
<a href="http://example.com/lacie" class="sister" id="link2">Lacie</a>
<a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>
第一个 <a />
的 next_sibling
是顿号和换行符,因此,访问下一个 <a />
需要 <a />.next_sibling.next_sibling