Python--BeautifulSoup模块的使用

Python–BeautifulSoup模块的使用


一、BeautifulSoup模块简介

​ BeautifulSoup是Python的一个库,主要功能是从网页爬取我们需要的数据。它将html解析为对象进行处理,将网页全部页面转变为字典或数组,其内置函数有对html内容进行筛选的作用。主要用于爬虫。

​ BeautifulSoup将复杂的html文档转换为树形结构,每一个节点都是一个对象,这些对象可以归纳为:Tag(标签)、NavigableString(注释内容,但是输出不包括注释符,字符串)。

二、BeautifulSoup的使用
  • BeautifulSoup的安装:一般Python3以上的IDLE有自带,直接用就好。如果没有的需要用pip进行安装,安装命令为:

    pip install beautifulsoup

  • BeautifulSoup的用法:

    #首先需要导入库:
    from bs4 import BeautifulSoup
    #其它可能需要用到的库
    import utllib
    import re
    import urllib.request
    
    #创建实例(以百度网页为例,这是我保存的简约百度html文件,放在.py文件同目录下):
    
    file=open('./baidu.html','rb')
    html=file.read()
    
    #创建对象:
    bs=BeautifulSoup(html,'html.parser')
    #bs为我们稍后筛选遍历的对象,html.parser为我们需要用的解析器
    
    #输出html文件的标题:
    print(bs.title)
    #输出:<title>百度一下,你就知道</title>
    
    #输入关于a标签的内容:
    print(bs.a)
    #输出:<a class="toindex" href="https://www.baidu.com/">百度首页</a>
    
    #输出两个</head>之间的所有内容
    print(bs.head)
    
    #若不需要打印Tag,比如<title>,可这样输出,输出不包括注释:
    print(bs.title.string)
    #输出:百度一下,你就知道
    
    #用attrs拿到标签里的所有属性值,用字典方式保存
    print(bs.a.attrs)
    
    print(bs.head.contents)#文档遍历,将</head>之间的内容用列表形式输出
    print(bs.head.contents[1])#访问列表里的元素
    
    #文档的搜索
    
    #字符串过滤,会查找与字符串完全匹配的标签,如abc则不会被匹配
    t_list=bs.find_all('a')
    print(t_list)
    #使用find_all()函数查找所有的a标签,t_list为暂时使用的一个对象
    
    #正则表达式搜索,re.compile(),包含a的标签都可以被显示
    t_list=bs.find_all(re.compile('a'))
    print(t_list)
    
    #查找参数:
    t_list=bs.find_all(id='head')
    for item in t_list:#打印多个内容
        print(item)
    
    #或这种形式:
    t_list=bs.find_all(text=['hao123','百度'])
    for item in t_list:#打印多个内容
        print(item)
        
    #css选择器,更加灵活,select后可指定多种内容,如:标签,类名,id,属性,子标签等等
    t_list=bs.select('title')#按标签
    t_list=bs.select('.mnav')#按类名
    t_list=bs.select('#u1')#按id
    t_list=bs.select('a[class="bri"]')#按属性
    t_list=bs.select('head>title')#按子标签
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值