概述
Python3 网络爬虫(一) urllib模块
Python3 网络爬虫(二) 正则表达式 re模块
安装
pip install beautifulsoup4
解析器
常用的解析器:”html.parser” “lxml” [“lxml”, “xml”](能够解析XML) “html5lib”
soup = BeautifulSoup(html, "html.parser")
bs4对象
Tag操作方式与dict()类似:Name,Attributes
soup = BeautifulSoup('<b class="boldest">Extremely bold</b>')
tag = soup.b
type(tag)
# <class 'bs4.element.Tag'>
tag.name
# u'b'
tag['class'] # 多值属性返回列表
# u'boldest'
tag.attrs
# {u'class': u'boldest'}
tag.string
# u'Extremely bold'
解析网页基本的方法find_all()
find_all() 与 findAll() 方法用法相同效果相同
find_all(name=None, attrs={}, recursive=True, text=None, limit=None, **kwargs)
name 匹配Tags的名字,获得相应的结果集。
soup.find_all('b')
# [<b>one</b>, <b>two</b>]
tagsStartingWithB = soup.find_all(re.compile('^b'))
soup.find_all(['title', 'p'])
# [<title>Page title</title>,
# <p id="firstpara" align="center">This is paragraph <b>one</b>.</p>,
# <p id="secondpara" align="blah">This is paragraph <b>two</b>.</p>]
soup.find_all({'title' : True, 'p' : True})
# [<title>Page title</title>,
# <p id="firstpara" align="center">This is paragraph <b>one</b>.</p>,
# <p id="secondpara" align="blah">This is paragraph <b>two</b>.</p>]
allTags = soup.find_all(True)
[tag.name for tag in allTags]
[u'html', u'head', u'title', u'body', u'p', u'b', u'p', u'b']
keyword参数用于筛选tag的属性。
soup.find_all(align="center")
# [<p id="firstpara" align="center">This is paragraph <b>one</b>.</p>]
soup.find_all(class_="center")
# [<p id="firstpara" class="center">This is paragraph <b>one</b>.</p>]
# 也可以使用sttrs={"class":"center"}方法
text 是一个用于搜索NavigableString对象的参数,recursive表示只查找当前子标签还是解析对象
soup.find_all(text="one")
# [u'one']
soup.find_all(text=lambda(x): len(x) < 12)
# [u'Page title', u'one', u'.', u'two', u'.']
[tag.name for tag in soup.html.find_all()]
# [u'head', u'title', u'body', u'p', u'b', u'p', u'b']
[tag.name for tag in soup.html.find_all(recursive=False)]
# [u'head', u'body']
limit参数为限定个数匹配。
Reference:
https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
最后
以上就是默默未来为你收集整理的Python3 网络爬虫(三) 页面解析 BeautifulSoup模块的全部内容,希望文章能够帮你解决Python3 网络爬虫(三) 页面解析 BeautifulSoup模块所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复