zoukankan      html  css  js  c++  java
  • 《爬虫学习》(四)(使用lxml,bs4库以及正则表达式解析数据)

    1.XPath:

    XPath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历。

    工具:扩展商店里搜索:XPath Helper(我是QQ浏览器)

    XPath的语法:

     使用举例:

    2. lxml库:

    lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据

    下载:pip install lxml

    基本使用:在lxml中使用xpath语法

    3.bs4库的使用:

    和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据。
    lxml 只会局部遍历,而Beautiful Soup 是基于HTML DOM(Document Object Model)的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多,所以性能要低于lxml。
    BeautifulSoup 用来解析 HTML 比较简单,API非常人性化,支持CSS选择器、Python标准库中的HTML解析器,也支持 lxml 的 XML解析器。
    Beautiful Soup 3 目前已经停止开发,推荐现在的项目使用Beautiful Soup 4。

    安装:pip install bs4

    bs4的简单使用:

    from bs4 import BeautifulSoup
    
    html = """
    
    一段HTML代码
    
    """
    
    #创建 Beautiful Soup 对象
    # 使用lxml来进行解析
    soup = BeautifulSoup(html,"lxml")
    
    print(soup.prettify())

    举例使用:

    # bs4库的使用
    # from bs4 import BeautifulSoup
    # html = 'xxxx'
    # bs4底层由lxml实现
    # bs = BeautifulSoup(html, 'lxml')
    # 1.获取所有span标签
    # spans = bs.find_all('span')
    # for span in spans:
    #     print(span)
    # 2.获取前二个span标签(limit=2)中的第二个span标签([1])   下标:从0开始
    # span = bs.find_all('span', limit=2)[1]
    # print(span)
    # 3.获取所有dl中class等于bottom的标签
    # dls = bs.find_all('dl', class_='bottom')
    # for dl in dls:
    #     print(dl)
    # 或者使用attrs标签(attrs=一个字典)
    # dls = bs.find_all('dl', attrs={'class':'bottom'})
    # for dl in dls:
    #     print(dl)
    # 4.获取所有a标签的href属性
    # aList = bs.find_all('a')
    # for a in aList:
    #     # 1.使用下标方法(推荐)
    #     href = a['href']
    #     # 2.使用attrs方式
    #     href2 = a.attrs['href']
    #     print(href2)

    4.还有一种方法解析数据:正则表达式

    以下内容从别人博客转载,方便复习

     

  • 相关阅读:
    python正则表达式re模块
    frp+proxifier实现内网socks5反向代理
    新版kali 添加root权限用户,和字体颜色解决办法
    通达OA 11.6 RCE 漏洞(含EXP,POC,环境)
    水泽信息收集自动化工具(安装教程)
    宝塔面板phpmyadmin未授权访问漏洞
    greenplum窗口函数使用浅析
    执果索因调整greenplum table dk值
    greenplum分区表查看所占空间大小
    greenplum查看表的数据分布情况来调整dk值
  • 原文地址:https://www.cnblogs.com/Whgy/p/12236514.html
Copyright © 2011-2022 走看看