美文网首页
数据提取方法

数据提取方法

作者: Donald_32e5 | 来源:发表于2019-05-19 09:59 被阅读0次

    本文内容:

    • 数据提取的基本概念和数据分类
    • json字符串的数据提取方法
    • 正则表达式的使用
    • xpath语法基本使用
    • beautifulSoup类库基本使用
    • LXML类库的基本使用

    一、爬虫中的数据分类

    在爬虫爬取的数据中有很多不同类型的数据,我们需要了解数据的不同类型来有规律的提取和解析数据。

    • 结构化数据:json;xml等
      • 处理方式:直接转化为Python类型
    • 非结构化数据:html
      • 处理方式:正则表达式、xpath

    二、json的数据提取

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。

    • 在Python中,json提供了四个常用的方法:


    • 如果比较喜欢xpath语话,还可以下载使用jsonpath,他的结构提取方法和xpath语法一样
    • 说起json,有时候因为编码的问题,json提取数据失败,这时候可是尝试使用simplejson类库提供的方法来解决编码问题。
    • simplejson传送门

    三、正则表达式

    用事先定义好的一些特定字符、及这些特定字符的组合,组成一个规则字符串,这个规则字符串用来表达对字符串的一种过滤逻辑。

    Python的re模块完美支持正则表达式,熟练使用正则的语法之后,基本可以完美提取想要的信息

    • 正则表达式语法


    • Python re模块常用方法

      • pattern.match(从头找一个)

      • pattern.search(找一个)

      • parttern.findall(找所有)

        #  返回一个列表,没有就是空列表
        re.findall("\d","chuan1zhi2") >> ["1","2"]
        
      • partten.sub(替换)

      • partten.complie(编译)

    四、xpath

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

    • xpah是非结构化数据里提取方法里面最快的,他是基于xml结构树来提取数据的


    • 虽然xpath是最快的,但是相对的语法相较于beautifulSoup略显繁琐,需要掌握xaph的语法


    五、beautifulsoup的使用

    beautifulsoup不同于xpath只取部分xml结构树的节点,它会把所有的xml结构树都截取出来,因此在内存和时间上都要稍差于xpath,但是他的语法更简单
    官方文档

    六、xml结构的数据提取

    总结:

    就提取数据方法的速度而言, 最快的是正则表达式,想对的学习成本也是很高:


    相关文章

      网友评论

          本文标题:数据提取方法

          本文链接:https://www.haomeiwen.com/subject/wrfyoqtx.html