美文网首页
python爬虫之解析模块

python爬虫之解析模块

作者: 行走世间的狮子 | 来源:发表于2019-08-16 17:54 被阅读0次

json模块 ---> json

1. 什么是json?

javascript中的对象和数组
对象 :{key: value, ...}
数组 :[value, value, ...]

2. 作用

json格式的字符串 和 Python数据类型 之间的转换

3. 常用方法

  • p = json.loads(s)
    • 功能: 把json格式字符串转为Python数据类型对象,json的对象转为-python的字典,json的数组转为python的列表
    • 参数: json格式字符串
    • 返回值: python数据类型对象
  • s = json.dumps(p, ensure_ascii=True)
    • 功能: 把python数据类型对象转为json格式字符串
    • 参数:
      p : python数据类型对象
      ensure_ascii : 默认使用ascii编码
    • 返回值: json格式字符串

4. 补充函数

# 能把字符串里的内容转换为一句python语句
s = '{"a": 1, "b": 2}'
print(type(eval(s))) # ---> dict
s = '[1, 2, 3, 4, 5]'
print(type(eval(s))) # ---> list

re模块 ---> 万能

1. 正则方法

  • p = re.compile(s[, re.S])
    • 功能:编译正则表达式
    • 参数:
      s: 正则表达式
      re.S: 让.可以匹配\n
    • 返回值:编译对象
  • r_list = p.findall(html)
    • 功能: 根据正则表达式在html里进行匹配
    • 参数: 需要匹配的字符串
    • 返回值:
      • 若不分组,则返回所有匹配的内容组成的列表
        [结果1, 结果2, 结果3, ...]
      • 若分组,则把每个分组匹配结果组成元组,再以列表的形式返回全部匹配结果
        [(group1, gourp2, ...), (), () ...]

2. 注意内容

贪婪匹配(.), 非贪婪匹配(.?):非贪婪匹配尽可能少的匹配字符串,爬虫解析中多用非贪婪匹配

lxml模块 ---> HTML

1. 什么是xpath?

xpath是在XML文档中查找信息的语言,同样适用于HTML文档的检索

2. xpath辅助工具

  • Chrome插件 :XPath Helper
    打开/关闭 :Ctrl + Shift + X
  • Firefox插件 :XPath checker
  • XPath表达式编辑工具 :XML quire

3. 语法

  • / : 从根节点开始选取
  • // : 从整个文档中查找节点
    eg: //price 、 /bookstore/book//price
  • @ : 选取某个节点的属性
    eg: /title[@lang="en"]
    • @的使用:
      • 选取1个节点 : //title[@lang="en"]
      • 选取N个节点 : //title[@lang]
      • 选取节点的属性值 : //title/@lang
  • | : 匹配多路径
    eg://book/title | //book/price`: 获取所有book节点下的 title节点和price节点
  • contains() : 匹配一个属性值中包含某些字符串的节点
    eg: //title[contains(@lang,"e")]
  • text() : 获取节点中的文本
    eg: //title[contains(@lang,"e")]/text()
  • 节点对象.text : 获取节点中的文本

4. 使用

from lxml import etree
# 利用lxml库的etree模块创建解析对象
parseHtml = etree.HTML(html)
# 解析对象调用xpath工具定位节点信息
r_list = parseHtml.xpath('xpath表达式')
# 返回值:
#    若xpath表达式里已经获取文本,则返回文本列表
#    若没有,则返回节点对象列表,调用text属性可获取文本,也可再调用xpath进一步解析

相关文章

网友评论

      本文标题:python爬虫之解析模块

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