爬虫系列10.BS4简介
来源:互联网 发布:windows 锁屏快捷键 编辑:程序博客网 时间:2024/06/14 21:49
1. 安装bs4,lxml,html5lib
- easy_install beautifulsoup4
pip install beautiful4
-linux:sudo python setup.py install如果代码抛出了 ImportError 的异常: “No module named HTMLParser”, 这是因为你在Python3版本中执行Python2版本的代码.
如果代码抛出了 ImportError 的异常: “No module named html.parser”, 这是因为你在Python2版本中执行Python3版本的代码.
或在bs4的目录中执行Python代码版本转换脚本 $ 2to3-3.2 -w bs4
2.常用解析方式
-python标准库:BeautifulSoup(markup, “html.parser”)
- lxml HTML 解析器:BeautifulSoup(markup, “lxml”)
- lxml XML 解析器:BeautifulSoup(markup, [“lxml”, “xml”])|BeautifulSoup(markup, “xml”)
- 唯一支持xml的解析器html5lib:BeautifulSoup(markup, “html5lib”),最好的容错性,以浏览器方式解析文档,生成html5文档,但是速度慢
3.创建Beautifusoup对象
可以手动指定解析器
soup = BeautifulSoup(html_doc, ‘html.parser’)
打开本地文件
soup = BeautifulSoup(open(‘index.html’))
所有文档都会默认转换成Unicode编码 UTF-8格式
4.格式化输出
soup.title
The Dormouse’s story
soup.title.name
u’title’
soup.title.string
u’The Dormouse’s story’
soup.title.parent.name
u’head’
soup.p
The Dormouse’s story
soup.p[‘class’]
u’title’
soup.a
Elsie
soup.find_all(‘a’)
[Elsie,
Lacie,
Tillie]soup.find(id=”link3”)
Tillie
5、Beautiful对象种类
首先 Beautiful Soup将所有的HTML文档转换成一种复杂的树形结构,每个节点都是Python对象。总共划分为4种Tag, NavigableString, BeautifuLSoup, Comment
6.Tag对象(标签,与HTML中的标签相同)
通过soup.b获得,最重要的属性:
- name:标签名字,改变标签名字就会影响所有通过当前BeautifulSoup对象生成的HTML文档
attributes:一个tag可能有多个属性,如tag
tag的属性的操作方法与字典相同。tag[‘class’] # u’boldest’
也可以通过直接“点”取属性,比如.attrs, tag.attrs {u’class’: u’boldest’}
tag的属性可以被添加,删除和修改: tag.get(“class”)
- 多值属性,最常见的为class,还有一些属性rel , rev , accept-charset , headers , accesskey。在BeautifulSoup中多值属性返回列表list类型。
css_soup = BeautifulSoup(‘‘)
css_soup.p[‘class’] –> [“body”, “strikeout”]
-如果某个属性看起来好像有多个值,但在任何版本的HTML定义中都没有被定义为多值属性,那么Beautiful Soup会将这个属性作为字符串返回,如id.
‘)
id_soup = BeautifulSoup(‘
id_soup.p[‘id’]
‘my id’
将tag转换成字符串时,多值属性会合并为一个值
rel_soup = BeautifulSoup(‘
Back to the homepage
‘)rel_soup.a[‘rel’]
# [‘index’]
rel_soup.a[‘rel’] = [‘index’, ‘contents’]
print(rel_soup.p)
#
Back to the homepage
如果转换的文档是XML格式,那么tag中不包含多值属性
xml_soup = BeautifulSoup(‘
xml_soup.p[‘class’]
# u’body strikeout’
标签内部的字符串:
字符串常被包含在tag内.Beautiful Soup用 NavigableString 类来包装tag中的字符串
tag.string
# u’Extremely bold’
type(tag.string)
#
- 爬虫系列10.BS4简介
- 爬虫系列11.BS4遍历文档树
- 爬虫系列12.BS4修改文档树
- Python爬虫(bs4)-1
- Python爬虫(bs4)-2
- Python爬虫(bs4)-3
- 爬虫Selenium&bs4 + Miku分享
- Python爬虫之bs4库
- Python -bs4反爬虫解决方法
- python爬虫系列(一):爬虫简介
- requests和bs4的python爬虫入门
- 小白学爬虫-----bs4的学习-1
- bs4爬虫:获取双色球中奖信息
- [Python]BS4 与 一个KDS 美图爬虫
- requests‐bs4路线实现中国大学排名定向爬虫
- Python网络爬虫requests、bs4爬取空姐网图片
- bs4爬虫:获取百度贴吧的内容
- 从零开始写Python爬虫 --- 1.3 BS4库的解析器
- Maximum Value Problem FZU 2037 找规律 递推
- 简单的文字+网址等过滤器
- Bootstrap 3 modal导致页面出现右边距
- MySQL存储引擎
- 爬虫系列9CSV模块
- 爬虫系列10.BS4简介
- Log4j与logback冲突问题,导致第三方日志狂刷
- 爬虫系列11.BS4遍历文档树
- eclipse、myeclipse常用快捷键
- linux基础(十六)设备访问、软硬链接、文件查找
- Tomcat7+Nginx实现简单的负载均衡
- 爬虫系列12.BS4修改文档树
- vs2010+QT5.5 修改窗口图标
- permutation