• 3.BeautifulSoup库


    1. 解析网页:
    • 导入BeautifulSoup:from bs4 import BeautifulSoup
    • 解析HTML或XML文件,只需设置对应的转换器即可
    	import requests
    	from bs4 import BeautifulSoup
    	url=”http://baidu.com”
    	r=requests.get(url)
    	demo=r.text
    	soup=BeautifulSoup(demo,”html.parser”) #两个参数:一个为html页面,另一个是解析器
    	print(soup.prettify())#格式化html结构,更加美观的显示html页面信息
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1. 结构化数据的浏览:
    • soup:相当于树结构的根节点
    • soup.title:返回第一个, bs4.element.Tag类型

    The Dormouse’s story

    • soup.title.name:返回标签名称,字符串str类型
      #‘title’

    • soup.title.string:获取的内容,返回值为bs4.element.NavigableString类型
      #‘The demo python introduces several python courses.’

    • soup.title.parent.name:返回第一个标签的父元素的名称
      #‘head’

    • soup.p:返回所有子孙中第一个

    • soup.p[‘class’]:返回第一个

      标签的class属性名称,结果为list列表类型
    • soup.a.attrs:返回第一个标签的所有属性值,结果为dict字典类型
      #{‘href’: ‘http://www.icourse163.org/course/BIT-268001’,
      ‘class’: [‘py1’],
      ‘id’: ‘link1’}
      #可以通过soup.a.attrs[‘class’]获取key为class的具体值

    • soup.find_all(name,attrs,recursive,string):结果为list形式

    • name为标签名称的检索字符串,可以为一个标签or读个标签名称的列表;如:soup.find_all(‘a’):返回所有的;soup.find_all([‘a’,’p’]):返回是所有的标签和

      标签
    • attrs:为字典形式,包含若干属性和对应的属性值,如:.find_all(‘span’,{‘id’:[’link1’,’link2’]}),找到所有的id为link1或link2的span标签

    • recursive:默认为True, 对子孙节点进行遍历;若为False,只对一级节点进行遍历

    • string:对标签的文本信息进行完全匹配,如:soup.find_all(‘a’,string=‘Advanced Python’),这里的string可以换成text;若想进行不完全匹配,可以soup.find_all(‘a’,string=re.compile(“Python”)),这里匹配的是包含python的字符串的标签a的列表

    • soup.find(id=”link3”):此用法和find_all相同,不过只返回第一个值;返回id=”link3”的第一个标签;soup.find(‘div’,‘articles-list’),默认为class

    • 当html结构中有注释时(b标签内部结构中有注释),通过soup.b.string并不会标志其为注释类型,但是其类型为bs4.element.Comment

  • 相关阅读:
    【阅读和学习代码】VoxelNet
    基于Spring Boot的线程池监控方案
    Python必知必会 os 模块详解
    Python自定义排序及实际遇到的一些实例
    Gopeed够快下载器支持全平台使用
    [力扣] 剑指 Offer 第三天 - 替换空格
    JavaFx之使用高版本JDK(二十八)
    【Dubbo框架、Dubbo中角色以及作用、各组件启动流程执行步骤、基于Dubbo实现的远程通信的案例】
    自学网络编程第一天- HTTP基础:基础原理、Request请求、Response应答
    shell:bash【Bourne-Again SHell】
  • 原文地址:https://blog.csdn.net/qq_38936560/article/details/126676379