ImageVerifierCode 换一换
格式:DOCX , 页数:71 ,大小:50.53KB ,
资源ID:821241      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-821241.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Beautiful Soup 420 文档Word文档下载推荐.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Beautiful Soup 420 文档Word文档下载推荐.docx

1、 class=sister id=link1Elsie,link2Lacie andlink3Tillie;and they lived at the bottom of a well.使用BeautifulSoup解析这段代码,能够得到一个BeautifulSoup的对象,并能按照标准的缩进格式的结构输出:frombs4import BeautifulSoupsoup = BeautifulSoup(html_doc)print(soup.prettify()# /html几个简单的浏览结构化数据的方法:soup.titlesoup.title.name# utitlesoup.title.

2、strings storysoup.title.parent.nameheadsoup.psoup.pclasssoup.asoup.find_all(a)# soup.find(id=从文档中找到所有标签的链接:for link in soup.find_all():print(link.get(href)# 从文档中获取所有文字内容:print(soup.get_text()# Elsie,# Lacie and# Tillie;# and they lived at the bottom of a well.这是你想要的吗?别着急,还有更好用的安装 Beautiful Soup如果你用的

3、是新版的Debain或ubuntu,那么可以通过系统的软件包管理来安装:$ apt-get install Python-bs4Beautiful Soup 4 通过PyPi发布,所以如果你无法使用系统包管理安装,那么也可以通过easy_install或pip来安装.包的名字是beautifulsoup4 ,这个包兼容Python2和Python3.$ easy_install beautifulsoup4$ pip install beautifulsoup4(在PyPi中还有一个名字是BeautifulSoup的包,但那可能不是你想要的,那是Beautiful Soup3的发布版本,因为很

4、多项目还在使用BS3, 所以BeautifulSoup包依然有效.但是如果你在编写新项目,那么你应该安装的beautifulsoup4 )如果你没有安装easy_install或pip ,那你也可以下载BS4的源码 ,然后通过setup.py来安装.$ Python setup.py install如果上述安装方法都行不通,Beautiful Soup的发布协议允许你将BS4的代码打包在你的项目中,这样无须安装即可使用.作者在Python2.7和Python3.2的版本下开发Beautiful Soup, 理论上Beautiful Soup应该在所有当前的Python版本中正常工作安装完成后的

5、问题Beautiful Soup发布时打包成Python2版本的代码,在Python3环境下安装时,会自动转换成Python3的代码,如果没有一个安装的过程,那么代码就不会被转换.如果代码抛出了ImportError的异常: “No module named HTMLParser”, 这是因为你在Python3版本中执行Python2版本的代码. “No module named html.parser”, 这是因为你在Python2版本中执行Python3版本的代码.如果遇到上述2种情况,最好的解决方法是重新安装BeautifulSoup4.如果在ROOT_TAG_NAME = udocum

6、ent代码处遇到SyntaxError “Invalid syntax”错误,需要将把BS4的Python代码版本从Python2转换到Python3. 可以重新安装BS4:$ Python3 setup.py install或在bs4的目录中执行Python代码版本转换脚本$ 2to3-3.2 -w bs4安装解析器Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中一个是lxml .根据操作系统不同,可以选择下列方法来安装lxml:$ apt-get install Python-lxml$ easy_install lxml$ pip in

7、stall lxml另一个可供选择的解析器是纯Python实现的html5lib , html5lib的解析方式与浏览器相同,可以选择下列方法来安装html5lib:$ apt-get install Python-html5lib$ easy_install html5lib$ pip install html5lib下表列出了主要的解析器,以及它们的优缺点:解析器使用方法优势劣势Python标准库BeautifulSoup(markup,html.parser Python的内置标准库 执行速度适中 文档容错能力强 Python 2.7.3 or 3.2.2)前的版本中文档容错能力差lxm

8、l HTML 解析器lxml 速度快 需要安装C语言库lxml XML 解析器BeautifulSoup(markup, xml) 唯一支持XML的解析器html5libhtml5lib 最好的容错性 以浏览器的方式解析文档 生成HTML5格式的文档 速度慢 不依赖外部扩展推荐使用lxml作为解析器,因为效率更高. 在Python2.7.3之前的版本和Python3中3.2.2之前的版本,必须安装lxml或html5lib, 因为那些Python版本的标准库中内置的HTML解析方法不够稳定.提示: 如果一段HTML或XML文档格式不正确的话,那么在不同的解析器中返回的结果可能是不一样的,查看解

9、析器之间的区别了解更多细节如何使用将一段文档传入BeautifulSoup 的构造方法,就能得到一个文档的对象, 可以传入一段字符串或一个文件句柄.soup = BeautifulSoup(open(index.htmlsoup = BeautifulSoup(data首先,文档被转换成Unicode,并且HTML的实例都被转换成Unicode编码BeautifulSoup(Sacré bleu!Sacr然后,Beautiful Soup选择最合适的解析器来解析这段文档,如果手动指定解析器那么Beautiful Soup会选择指定的解析器来解析文档.(参考解析成XML ).对象的

10、种类Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种: Tag , NavigableString , BeautifulSoup , Comment .TagTag对象与XML或HTML原生文档中的tag相同:soup = BeautifulSoup(b class=boldestExtremely boldAttributes一个tag可能有很多个属性. tag # KeyError: print(tag.get(# None多值属性HTML 4定义了一系列可以包含多个值的属性.在HTML5中移除了一些,却增加更多

11、.最常见的多值的属性是 class (一个tag可以有多个CSS的class). 还有一些属性rel , rev , accept-charset , headers , accesskey . 在Beautiful Soup中多值属性的返回类型是list:css_soup = BeautifulSoup(body strikeoutcss_soup.p# bodystrikeout如果某个属性看起来好像有多个值,但在任何版本的HTML定义中都没有被定义为多值属性,那么Beautiful Soup会将这个属性作为字符串返回id_soup = BeautifulSoup(p id=my idid

12、_soup.p# my id将tag转换成字符串时,多值属性会合并为一个值rel_soup = BeautifulSoup(pBack to the a rel=indexhomepagerel_soup.arel# index = , contentsprint(rel_soup.p)index contents如果转换的文档是XML格式,那么tag中不包含多值属性xml_soup = BeautifulSoup(xmlxml_soup.pbody strikeout可以遍历的字符串字符串常被包含在tag内.Beautiful Soup用NavigableString类来包装tag中的字符串

13、:tag.stringExtremely boldtype(tag.string)bs4.element.NavigableString一个NavigableString字符串与Python中的Unicode字符串相同,并且还支持包含在遍历文档树和搜索文档树中的一些特性. 通过unicode()方法可以直接将NavigableString对象转换成Unicode字符串:unicode_string =unicode(tag.string)unicode_stringtype(unicode_string)type unicodetag中包含的字符串不能编辑,但是可以被替换成其它的字符串,用re

14、place_with()方法:tag.string.replace_with(No longer boldNo longer boldsoup = BeautifulSoup(markup)comment = soup.b.stringtype(comment)bs4.element.CommentComment对象是一个特殊类型的NavigableString对象:commentHey, buddy. Want to buy a used parser但是当它出现在HTML文档中时, Comment对象会使用特殊的格式输出:print(soup.b.prettify()Beautiful S

15、oup中定义的其它类型都可能会出现在XML的文档中: CData , ProcessingInstruction , Declaration , Doctype .与Comment对象类似,这些类都是NavigableString的子类,只是添加了一些额外的方法的字符串独享.下面是用CDATA来替代注释的例子:frombs4import CDatacdata = CData(A CDATA blockcomment.replace_with(cdata)CDATAA CDATA block遍历文档树还拿”爱丽丝梦游仙境”的文档来做例子:通过这段例子来演示怎样从文档的一段内容找到另一段内容子节点一个Tag可能包含多个字符串或其它的Tag,这些都是这个Tag的子节点.Beautiful Soup提供了许多操作和遍历子节点的属性.注意: Beautiful Soup中字符串节点不支持这些属性,因为字符串没有子节点tag的名字

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2