志在指尖
用双手敲打未来

beautifulsoup(用法详解)

beautifulsoup

导入运用
frombs4importBeautifulSoup
soup=BeautifulSoup(html,’lxml’)
解析器运用方法优势劣势
Python标准库BeautifulSoup(markup,”html.parser”)Python的内置标准库、执行速度适中、文档容错能力强Python2.7.3or3.2.2)前的版本中文容错能力差
lxmlHTML解析器BeautifulSoup(markup,”lxml”)速度快、文档容错能力强需求装置C言语库
lxmlXML解析器BeautifulSoup(markup,”xml”)速度快、唯一支撑XML的解析器需求装置C言语库
html5libBeautifulSoup(markup,”html5lib”)最好的容错性、以浏览器的方法解析文档、生成HTML5格局的文档速度慢、不依赖外部扩展.

HTML

beautifulsoup用法详解

#!/usr/bin/python
#-*-coding:utf-8-*-
frombs4importBeautifulSoup
html_doc=”””
TheDormouse’sstory
TheDormouse’sstory
Onceuponatimetherewerethreelittlesisters;andtheirnameswere
Elsie,
Lacieand
Tillie;
andtheylivedatthebottomofawell.

“””
soup=BeautifulSoup(html_doc)
printsoup.title
printsoup.title.name
printsoup.title.string
printsoup.p
printsoup.a
printsoup.find_all(‘a’)
printsoup.find(id=’link3′)
printsoup.get_text()
成果为:
仿制代码代码如下:
TheDormouse’sstory
title
TheDormouse’sstory
TheDormouse’sstory
Elsie
[Elsie,Lacie,Tillie]
Tillie
TheDormouse’sstory
TheDormouse’sstory
Onceuponatimetherewerethreelittlesisters;andtheirnameswere
Elsie,
Lacieand
Tillie;
andtheylivedatthebottomofawell.

能够看出:soup便是BeautifulSoup处理格式化后的字符串,soup.title得到的是title标签,soup.p得到的是文档中的第一个p标签,要想得到一切标签,得用find_all
函数。find_all函数回来的是一个序列,能够对它进行循环,依次得到想到的东西.
get_text()是回来文本,这个对每一个BeautifulSoup处理后的对象得到的标签都是生效的。你能够试试printsoup.p.get_text()
其实是能够取得标签的其他特点的,比方我要取得a标签的href特点的值,能够运用printsoup.a[‘href’],类似的其他特点,比方class也是能够这么得到的(soup.a[‘class’])。
特别的,一些特别的标签,比方head标签,是能够通过soup.head得到,其实前面也已经说了。
怎么取得标签的内容数组?运用contents特点就能够比方运用printsoup.head.contents,就取得了head下的一切子孩子,以列表的方式回来成果,
能够运用[num]的方式取得,取得标签,运用.name就能够。
获取标签的孩子,也能够运用children,但是不能printsoup.head.children没有回来列表,回来的是,
不过运用list能够将其转化为列表。当然能够运用for语句遍历里面的孩子。
关于string特点,如果超越一个标签的话,那么就会回来None,不然就回来具体的字符串printsoup.title.string就回来了TheDormouse’sstory
超越一个标签的话,能够试用strings
向上查找能够用parent函数,如果查找一切的,那么能够运用parents函数
查找下一个兄弟运用next_sibling,查找上一个兄弟节点运用previous_sibling,如果是查找一切的,那么在对应的函数后面加s就能够
怎么遍历树?
运用find_all函数
仿制代码代码如下:
find_all(name,attrs,recursive,text,limit,**kwargs)
举例说明:
仿制代码代码如下:
printsoup.find_all(‘title’)
printsoup.find_all(‘p’,’title’)
printsoup.find_all(‘a’)
printsoup.find_all(id=”link2″)
printsoup.find_all(id=True)
回来值为:
仿制代码代码如下:
[TheDormouse’sstory]
[
TheDormouse’sstory
]
[Elsie,Lacie,Tillie]
[Lacie]
[Elsie,Lacie,Tillie]

未经允许不得转载:IT技术网站 » beautifulsoup(用法详解)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载