• PYTHON网络爬虫与信息提取[信息的组织与提取](单元五)


    1 三种信息类型的简介

    xml : extensible markup language

    与html非常相似

    现有html后有xml 

    xml是html发展来的 扩展 通用

    json  类型

    javascript object notation 

    有类型的键值对 表达的方式

    一个key对应多个值

    "key1":["asas",''asas'']

    嵌套使用

    "name":{

      "newname":“北京理工大学”

      "oldname":"延安自然科学院"

    }

    yaml   (yaml ain't markup language) :)

    name: 北京理工大学  无类型的

    通过缩写表示所属的相关关系(嵌套)

    name:
      oldname:xxxxx

      newname:sasas

    通过减号表达并列关系

    name :

    -xxxxxx

    -asasasas

    竖线表示整块数据

    text:|

    asdadsssssssssssssdsd

    sdadasdasdasdasdasd

    asdasd

    #表示注释

    xml 世界上最早的通用信息标记语言 ,可拓展性好

    json 信息有类型,适合程序处理,简介

    yaml 信息无类型 文本型息比例最好,可读性好

    xml  internet上的交互与流动

    json 程序对借口的使用,云端   但是无注释

    yaml 各类系统的配置文件 有注释易读

    2 信息提取的一般方法

    方法一:完整解析信息的标记形式,需要表及解析器 列如 bs4的标签书遍历

    繁琐慢;

    方法二:无视标记信息,直接提取关键信息,利用文本查找

    准确性与内容相关

    融合方法:结合形式解析与搜索方法

    例:

    提取html上所有的URL链接

    1.找到所有的a标签

    2.找到a标签中的href?

    form bs4 import BeautifulSoup

    soup=BeautifulSoup(demo,"html.parser")

    for link in soup.find_all("a"):

       print(link.get("href"))

    3基于BeautifulSoup的内容查找

    方法find_all(name,attrs,recursive,string,**kwargs)

    返回一个列表类型,存储查找的结果

    soup.find_all("a”)

    soup,find_all(["a","b"]) 同时查找ab标签

    for tag in soup.find_all(True):

      print(tag.name)

    可以打印该soup中的所有tag信息

    import re

    for tag in soup.find_all(re.compile("b")):

      print(tag.name)

    打印以b开头的

    attrs 

    查找p标签中带有course属性值的的

    soup.find_all("p","course")

    //soup.find_all("p",attrs={"ssdsd":"dssds})

    也可以约定是某一个属性为XX

    soup.find_all(id="link1") 

    #id属性为link1

    import re //利用正则表达式

    recursive 表示是否对所有子孙都搜索 默认为TRUE

    soup.find_all("a")

    string 对标签中的字符穿检索的属性

    例:
    soup.find_all(string="Basic python")

    也可以用正则表达式

    简短形式

    <tag>() 等价于 <tag>.find_all()

    soup(...)等价于 soup.find_all()

    7个拓展方法

    find  只返回一个结果 字符串类型

    find_parents 只在先辈节点中搜索,返回一个列表

    find_parent 只在黔北节点中搜索,返回结果 字符串类型一个

    find_next_siblings只在后续平行节点中搜索,返回列表类型

    find_next_sibling 同上只返回一个 字符串类型

    find_previous_siblings

    find_previsou_sibling 同上

    差不多

  • 相关阅读:
    篮球中PRA意思
    篮球中PRA意思
    Ajax介绍
    QQ播放器代码
    QQ播放器代码
    QQ播放器代码
    DataSet对象
    DataReader对象
    Connection对象
    DataAdapter对象
  • 原文地址:https://www.cnblogs.com/sfzyk/p/6516879.html
Copyright © 2020-2023  润新知