Python爬虫开发(三)—— 数据提取方法

json

  • 数据交换格式,看起来像python类型(列表,字典)的字符串
  • 使用json之前,需要导入
  • json.loads
    • 把json字符串转化为python类型
      • Python
        • json.loads(json字符串)
  • 哪里会返回json的数据
    • 浏览器切换到手机版
    • 抓包app
  • json.dumps
    • 把Python类型转换为json字符串
      • Python
        • json.dumps({"a":"a","b":"2"})
        • json.dumps(rets,ensure_ascii=False,indent=2)
          • ensure_ascii   :让中文显示成中文
          • indent : 能够让下一行在上一行的基础上空格
  • 豆瓣电影爬虫案例

 

xpath和lxml

  • xpath
    • 一门从html中提取数据的语言
  • xpath语法
    • xpath helper插件:帮助我们从elements中定位数据
    • 1.选择节点(标签)
      • /html/head/meta  :能够选中html下的head下的所有meta标签
    • 2. //  :能够从任意节点开始选择
      • //li  :当前页面上的所有li标签
      • /html/head//link   :head下的所有link标签
    • 3. @符号的用途
      • 选择具体某个元素   ://div[@class='feed-infinite-wrapper']/ul/li
        • 选择class='feed-infinite-wrapper‘的div下的ul下的li
      • a/@href   :选择a的href的值
    • 4.获取文本
      • /a/text()   :获取a下的文本
      • /a//test()   :获取a下的所有的文本
    • 5.当前
      • ./a   :当前节点下的a标签
  • lxml
    • 安装:pip install lxml
    • 使用
      • Python
        • from lxml import etree
        • element = etree.HTML("html字符串")
        • element.xpath("")

写爬虫的讨论

  • 1.url
    • 知道url地址的规律和总的页码数:构造url地址的列表
    • start_url
  • 2.发送请求,获取响应
    • requests
  • 3.提取数据
    • 返回json字符串:json模块
    • 返回的是html字符串:lxml模块配合xpath提取数据
  • 4.保存

基础知识点的学习

  • format:字符串格式化的一种方式
    • Python
      • "孤独{}键客".format(1)
      • "孤独{}键客".format([1,2,3])
      • "孤独{}键客".format({1,2,3})
      • "孤独{}键客{}".format({1,2,4},[1,3,4])
      • "孤独{}键客{}".format({1,2,3},1)
  • 列表推导式
    • 帮助我们快速的生成包含一堆数据的列表
    • Python
      • [i+10 for i in range(10)]   --->[10,11,12,...19]
      • ["10月{}日".format(i) for i in range(1,10)]   ---> ["10月1日","10月2日",...,"10月9日"]
  • 字典推导式
    • 帮助我们快速的生成包含一堆数据的字典
      • Python
        • {i+10:for in  range(10)}   #--->(10:0,11:1,12:3....19:9)
        • {“a{}”.format(i):10 for i in range(3)}   #--->{"a0":10,"a1":10,"a2":10}
  • 三元运算符 
    • if后面的条件成立,就把if前面的结果复制给a,否则把else后面的结果复制给a
      • Python
        • a = 10 if 4>3 else 20    #a=10
        • a = 10 if 4<3 else20    #a=20

 

 

你可能感兴趣的:(Python)