BeautifulSoup4的安装及使用

简介:

一、BeautifulSoup4的安装
   方法一:cmd->easy_install BeautifulSoup
   方法二:从http://www.crummy.com/software/BeautifulSoup/bs4/download/
下载->cmd->进入下载的文件目录->python setuyp.py install

二、 BeautifulSoup4的使用 
 1、导入
    from bs4 import BeautifulSoup
    注意:要是BeautifulSoup的版本为3.x,则导入方式为:from BeautifulSoup import BeautifulSoup
 2、example
    html文件:
    html_doc = """

 The Dormouse's story

  Once upon a time there were three little sisters; and their names were ElsieLacie and Tillie; and they lived at the bottom of a well.

...

"""

 代码:
 from bs4 import BeautifulSoup
 soup = BeautifulSoup(html_doc)
 
 接下来可以开始使用各种功能

  soup.X (X为任意标签,返回整个标签,包括标签的属性,内容等)

 如:soup.title

   #

   soup.p

   #

 The Dormouse's story

  soup.a (注:仅仅返回第一个结果)

   # Elsie

   soup.find_all('a') (find_all 可以返回所有)

   # [Elsie,

   # Lacie,

   # Tillie]

   find还可以按属性查找
   soup.find(id="link3")
   # Tillie

   要取某个标签的某个属性,可用函数有 find_all,get
   for link in soup.find_all('a'):
     print(link.get('href'))
   # http://example.com/elsie
   # http://example.com/lacie
   # http://example.com/tillie

   要取html文件中的所有文本,可使用get_text()
   print(soup.get_text())
   # The Dormouse's story
   # The Dormouse's story
   # Once upon a time there were three little sisters; and their names were
   # Elsie,
   # Lacie and
   # Tillie;
   # and they lived at the bottom of a well.
   # ...

   如果是打开html文件,语句可用:
   soup = BeautifulSoup(open("index.html"))
   BeautifulSoup中的Object
  tag (对应html中的标签)
   tag.attrs (以字典形式返回tag的所有属性)
  可以直接对tag的属性进行增、删、改,跟操作字典一样

   tag['class'] = 'verybold'

   tag['id'] = 1

   tag

   #< blockquote class="verybold" id="1">Extremely bold</blockquote>


   del tag['class']

   del tag['id']

   tag

   #< blockquote>Extremely bold</blockquote>

   tag['class']

   # KeyError: 'class'

   print(tag.get('class'))

   # None


   X.contents (X为标签,可返回标签的内容)

   eg.

   head_tag = soup.head

   head_tag

   #< head><title>The Dormouse's story</title></head>

   head_tag.contents

   [<title>The Dormouse's story</title>]

   title_tag = head_tag.contents[0]

   title_tag

   #< title>The Dormouse's story</title>

   title_tag.contents

   # [u'The Dormouse's story']


   解决解析网页出现乱码问题:
   import urllib2
   2    from BeautifulSoup import BeautifulSoup
   3    
   4    page = urllib2.urlopen('http://www.leeon.me');
   5    soup = BeautifulSoup(page,fromEncoding="gb18030")
   6    
   7    print soup.originalEncoding
   8    print soup.prettify()



#

# python --version
# wget https://www.crummy.com/software/BeautifulSoup/bs4/download/4.6/beautifulsoup4-4.6.0.tar.gz
# tar -zxvf beautifulsoup4-4.6.0.tar.gz
# cd beautifulsoup4-4.6.0/
# python setup.py install



本文转自 guowang327 51CTO博客,原文链接:http://blog.51cto.com/guowang327/1927398,如需转载请自行联系原作者

相关文章
|
消息中间件 监控 数据安全/隐私保护
Docker安装部署RabbitMQ & 密码修改 &创建用户及角色
Docker安装部署RabbitMQ & 密码修改 &创建用户及角色
3143 0
|
数据采集 前端开发 JavaScript
爬虫策略
【8月更文挑战第14天】
353 2
|
缓存 负载均衡 数据库
构建高性能后端系统的策略与实践
在数字化时代的浪潮中,后端系统作为支撑现代应用程序的核心,其性能的优劣直接影响用户体验和业务发展。本文将深入探讨如何构建一个既高效又可靠的后端系统,通过具体的策略和技术手段,指导读者理解并实施后端优化的最佳实践。我们将一起探索代码优化、数据库设计、缓存应用、异步处理以及负载均衡等关键领域,旨在帮助开发者打造能够应对高并发挑战的后端架构。 【7月更文挑战第27天】
269 5
VSCode将某个字符替换为换行符并换行显示
VSCode将某个字符替换为换行符并换行显示
1634 1
VSCode将某个字符替换为换行符并换行显示
|
JSON Kubernetes 负载均衡
第一次看 config dump
前言各位,知道的越多,就越会发现自己的无知。在面对服务网格这样的新兴概念之时,就更是如此了。回想昨日,满头大汗地研究VirtualService和DestinationRule是干什么用的自己仿佛还近在眼前。然而,在搞明白了服务网格的基本概念之后,我却发现自己甚至坠落进更大的疑惑之中了。如果你看过了一些istio的基本知识与概念,你应该知道istio为每个数据面的Pod都注入了一个Sidecar,
第一次看 config dump
|
存储 对象存储 C++
在 VS Code 中使用 OSS 进行 Markdown 文档编写
阿里云OSS对象存储服务是理想的存储解决方案,专门用于承载大量非结构化数据。在VSCode中编写Markdown文档时,手动上传图片至OSS并获取相应链接的过程通常复杂且耗时。为此,Aliyun OSS Uploader插件应运而生,以简化和优化此流程。它不仅能够自动将图片上传到OSS并生成可供插入的链接,还能在您需要时通过撤回链接,删除已上传的图片,极大地提升了效率和便捷性。
|
Go 开发工具 git
推荐一个开源流媒体服务器-livgo
推荐一个开源流媒体服务器-livgo
732 0
|
安全 Devops Java
你以为搞个流水线每天跑,团队就在使用CI/CD实践了?
在实践中,很多团队对于DevOps 流水线没有很透彻的理解,要不就创建一大堆流水线,要不就一个流水线通吃。实际上,流水线的设计和写代码一样,需要基于“业务场景”进行一定的设计编排,特别是很多通过“开源工具”搭建的流水线,更需要如此(商业的一体化平台大部分已经把设计思想融入自己产品里了)。 • 流水线的设计与分支策略有关 • 流水线的设计与研发活动有关 清晰的代码结构,标准的环境配置,原子化的流水线任务编排,再加上团队的协作纪律,和持续优化的动作,才是真正的践行CI/CD实践
612 4
|
SQL Java 数据库
flink cdc多种数据源安装、配置与验证(超详细总结)(下)
flink cdc多种数据源安装、配置与验证(超详细总结)(下)
1145 0