我是靠谱客的博主 默默未来,最近开发中收集的这篇文章主要介绍Python3 网络爬虫(三) 页面解析 BeautifulSoup模块,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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模块所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部