爬虫数据提取方法

数据提取方法

json

  • 数据交换格式,看起来像python中的(字典)的字符串

  • 使用之前进行导包处理  import json

  • 哪里会有json的数据

    • 浏览器切换到手机版
    • 抓包app
  • json.loads

    • 把json字符串转化为python类型
    • json.loads(json字符串)
  • json.dumps

    • 把python类型转为为json字符串
    • json.dumps({})
    • json.dumps(ret,ensure_ascii=False,indent=2)
      • ensure_ascii:让中文显示为中文
      • indent:能够让下一行在上一行的基础上空格

xpath和lxml

  • xpath

    • 一门从html中提取数据的语言
  • xpath语法

    • xpath helper插件: 帮助我们从elements中定位数据
    • 选择select下面的复选框的如何跟选
      • //select/option[@selected]
    • 1.选择节点(标签)
      • /html/head/meta:能够选中html下的所有meta标签
    • 2.//: 能够从任意节点开始选择
      • //li:当前页面下的所以li标签
      • /html/head///link: head下的所有link标签
    • 3.@符号的用途
      • 选择具体的某一个元素: //div[@class="zhengwen]/ul/li
        • 选择class="zhengwen"div下的ul下的li
      • a/@href:选择a标签下的herf的值
    • 4.获取文本
      • /a/text():获取a标签下的文本
      • /a//text(): 获取a标签下的所以文本
    • 5.点前
      • ./a: 当前节点下的a标签
    • 6."string(.)"
      • 获取当前节点下的所有文本
  • lxml

    • 安装: pip install lxml
    • 使用
      from lxml import etree
      element = etree.HTML("html字符串")
      element.xpath("")
      

其他知识

  • 列表推导式
    list_num = [x for x in range(5)]
    print(list_num)
    # [0,1,2,3,4]
    
  • 字典推导式
    dict_num = {x: x+10 for x in range(5)}
    print(dict_num)
    # {0: 10, 1: 11, 2: 12, 3: 13, 4: 14}
    
  • format:
    "{}.{}.{}".format(1,2,3)
    

爬虫的基本

  • 1.url

    • 知道url地址的规律和总页码数: 构建url地址的列表
    • url_list
  • 2.发起请求,获取响应

    • requests
  • 3.提取数据

    • 返回json字符串: json模块
    • 返回的是html字符串: lxml配合xpath进行使用提取数据
  • 4.保存数据

原文地址:https://www.cnblogs.com/liudemeng/p/10715075.html